diff --git a/Core/Config.cpp b/Core/Config.cpp index b3422d79d4..36aa8e6ad1 100644 --- a/Core/Config.cpp +++ b/Core/Config.cpp @@ -15,6 +15,9 @@ // Official git repository and contact information can be found at // https://github.com/hrydgard/ppsspp and http://www.ppsspp.org/. +#include +#include + #include "base/display.h" #include "base/NativeApp.h" #include "ext/vjson/json.h" @@ -530,7 +533,7 @@ static ConfigSetting systemParamSettings[] = { ReportedConfigSetting("PSPFirmwareVersion", &g_Config.iFirmwareVersion, PSP_DEFAULT_FIRMWARE), ConfigSetting("NickName", &g_Config.sNickName, "PPSSPP"), ConfigSetting("proAdhocServer", &g_Config.proAdhocServer, "localhost"), - ConfigSetting("MacAddress", &g_Config.localMacAddress, "01:02:03:04:05:06"), + ConfigSetting("MacAddress", &g_Config.localMacAddress, g_Config.CreateRandMAC().c_str()), ReportedConfigSetting("Language", &g_Config.iLanguage, &DefaultSystemParamLanguage), ConfigSetting("TimeFormat", &g_Config.iTimeFormat, PSP_SYSTEMPARAM_TIME_FORMAT_24HR), ConfigSetting("DateFormat", &g_Config.iDateFormat, PSP_SYSTEMPARAM_DATE_FORMAT_YYYYMMDD), @@ -997,3 +1000,16 @@ void Config::GetReportingInfo(UrlEncoder &data) { } } } + +std::string Config::CreateRandMAC() { + std::stringstream randStream; + srand(time(0)); + for(int i = 0; i < 6; i++) { + randStream << std::hex << (rand() % 256); //generates each octet for the mac in hex format + if (i<5) { + randStream << ':'; //we need a : between every octet + } + } + return randStream.str(); //no need for creating a new string, just return this +} + diff --git a/Core/Config.h b/Core/Config.h index 254b5cac0b..09ccb450fe 100644 --- a/Core/Config.h +++ b/Core/Config.h @@ -336,7 +336,9 @@ public: void ResetControlLayout(); void GetReportingInfo(UrlEncoder &data); - + + std::string CreateRandMAC(); // Uses 's rand() PRNG to create a pseudorandom MAC address + private: std::string iniFilename_; std::string controllerIniFilename_;