Merge pull request #3444 from jroweboy/fix-multiplayer
UDS: Add non zero mac address to the shared page
This commit is contained in:
commit
ce725f24ca
3 changed files with 42 additions and 2 deletions
|
@ -2,6 +2,7 @@
|
|||
// Licensed under GPLv2 or any later version
|
||||
// Refer to the license.txt file included.
|
||||
|
||||
#include <cryptopp/osrng.h>
|
||||
#include "core/hle/service/nwm/nwm.h"
|
||||
#include "core/hle/service/nwm/nwm_cec.h"
|
||||
#include "core/hle/service/nwm/nwm_ext.h"
|
||||
|
@ -10,6 +11,8 @@
|
|||
#include "core/hle/service/nwm/nwm_soc.h"
|
||||
#include "core/hle/service/nwm/nwm_tst.h"
|
||||
#include "core/hle/service/nwm/nwm_uds.h"
|
||||
#include "core/hle/shared_page.h"
|
||||
#include "network/network.h"
|
||||
|
||||
namespace Service {
|
||||
namespace NWM {
|
||||
|
@ -21,6 +24,19 @@ void Init() {
|
|||
AddService(new NWM_SAP);
|
||||
AddService(new NWM_SOC);
|
||||
AddService(new NWM_TST);
|
||||
|
||||
CryptoPP::AutoSeededRandomPool rng;
|
||||
auto mac = SharedPage::DefaultMac;
|
||||
// Keep the Nintendo 3DS MAC header and randomly generate the last 3 bytes
|
||||
rng.GenerateBlock(static_cast<CryptoPP::byte*>(mac.data() + 3), 3);
|
||||
|
||||
if (auto room_member = Network::GetRoomMember().lock()) {
|
||||
if (room_member->IsConnected()) {
|
||||
mac = room_member->GetMacAddress();
|
||||
}
|
||||
}
|
||||
SharedPage::SetMacAddress(mac);
|
||||
SharedPage::SetWifiLinkLevel(SharedPage::WifiLinkLevel::BEST);
|
||||
}
|
||||
|
||||
void InstallInterfaces(SM::ServiceManager& service_manager) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue