summaryrefslogtreecommitdiff
path: root/Source/Core
diff options
context:
space:
mode:
authorLioncash <mathew1800@gmail.com>2017-02-15 12:22:34 -0500
committerLioncash <mathew1800@gmail.com>2017-02-15 13:38:52 -0500
commit245de3fa4f84f6429ca98155c9d617c180d005e5 (patch)
tree98e3e5690e7c272183572cb8479cbd4dc70429fe /Source/Core
parent6f272b3a4c31a43f8d4fd8b7fd914112d4fd820b (diff)
IOS: Move network MAC utilities to their own source files
All three implementations within Net.cpp currently rely on these functions.
Diffstat (limited to 'Source/Core')
-rw-r--r--Source/Core/Core/CMakeLists.txt3
-rw-r--r--Source/Core/Core/Core.vcxproj6
-rw-r--r--Source/Core/Core/Core.vcxproj.filters6
-rw-r--r--Source/Core/Core/IOS/Network/MACUtils.cpp50
-rw-r--r--Source/Core/Core/IOS/Network/MACUtils.h15
-rw-r--r--Source/Core/Core/IOS/Network/Net.cpp37
6 files changed, 81 insertions, 36 deletions
diff --git a/Source/Core/Core/CMakeLists.txt b/Source/Core/Core/CMakeLists.txt
index d2a9f50fc6..2bdda230e5 100644
--- a/Source/Core/Core/CMakeLists.txt
+++ b/Source/Core/Core/CMakeLists.txt
@@ -148,8 +148,9 @@ set(SRCS ActionReplay.cpp
IOS/FS/FS.cpp
IOS/Network/Config.cpp
IOS/Network/ICMPLin.cpp
- IOS/Network/Socket.cpp
+ IOS/Network/MACUtils.cpp
IOS/Network/Net.cpp
+ IOS/Network/Socket.cpp
IOS/Network/SSL.cpp
IOS/Network/KD/NetKDRequest.cpp
IOS/Network/KD/NetKDTime.cpp
diff --git a/Source/Core/Core/Core.vcxproj b/Source/Core/Core/Core.vcxproj
index d91d0c3ad7..5669289562 100644
--- a/Source/Core/Core/Core.vcxproj
+++ b/Source/Core/Core/Core.vcxproj
@@ -180,8 +180,9 @@
<ClCompile Include="IOS\FS\FS.cpp" />
<ClCompile Include="IOS\Network\Config.cpp" />
<ClCompile Include="IOS\Network\ICMPLin.cpp" />
- <ClCompile Include="IOS\Network\Socket.cpp" />
+ <ClCompile Include="IOS\Network\MACUtils.cpp" />
<ClCompile Include="IOS\Network\Net.cpp" />
+ <ClCompile Include="IOS\Network\Socket.cpp" />
<ClCompile Include="IOS\Network\SSL.cpp" />
<ClCompile Include="IOS\Network\KD\NetKDRequest.cpp" />
<ClCompile Include="IOS\Network\KD\NetKDTime.cpp" />
@@ -420,8 +421,9 @@
<ClInclude Include="IOS\Network\Config.h" />
<ClInclude Include="IOS\Network\ICMPLin.h" />
<ClInclude Include="IOS\Network\ICMP.h" />
- <ClInclude Include="IOS\Network\Socket.h" />
+ <ClInclude Include="IOS\Network\MACUtils.h" />
<ClInclude Include="IOS\Network\Net.h" />
+ <ClInclude Include="IOS\Network\Socket.h" />
<ClInclude Include="IOS\Network\SSL.h" />
<ClInclude Include="IOS\Network\KD\NetKDRequest.h" />
<ClInclude Include="IOS\Network\KD\NetKDTime.h" />
diff --git a/Source/Core/Core/Core.vcxproj.filters b/Source/Core/Core/Core.vcxproj.filters
index 5b84d0e0df..4158f106e2 100644
--- a/Source/Core/Core/Core.vcxproj.filters
+++ b/Source/Core/Core/Core.vcxproj.filters
@@ -758,6 +758,9 @@
<ClCompile Include="IOS\MIOS.cpp">
<Filter>IOS</Filter>
</ClCompile>
+ <ClCompile Include="IOS\Network\MACUtils.cpp">
+ <Filter>IOS\Network</Filter>
+ </ClCompile>
<ClCompile Include="IOS\Network\Net.cpp">
<Filter>IOS\Network</Filter>
</ClCompile>
@@ -1353,6 +1356,9 @@
<ClInclude Include="IOS\Network\ICMPLin.h">
<Filter>IOS\Network</Filter>
</ClInclude>
+ <ClInclude Include="IOS\Network\MACUtils.h">
+ <Filter>IOS\Network</Filter>
+ </ClInclude>
<ClInclude Include="IOS\Network\Net.h">
<Filter>IOS\Network</Filter>
</ClInclude>
diff --git a/Source/Core/Core/IOS/Network/MACUtils.cpp b/Source/Core/Core/IOS/Network/MACUtils.cpp
new file mode 100644
index 0000000000..fabc58ec74
--- /dev/null
+++ b/Source/Core/Core/IOS/Network/MACUtils.cpp
@@ -0,0 +1,50 @@
+// Copyright 2017 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#include "Core/IOS/Network/MACUtils.h"
+
+#include <string>
+
+#include "Common/CommonTypes.h"
+#include "Common/Logging/Log.h"
+#include "Common/Network.h"
+
+#include "Core/ConfigManager.h"
+#include "Core/Core.h"
+
+namespace IOS
+{
+namespace Net
+{
+static void SaveMACAddress(const u8* mac)
+{
+ SConfig::GetInstance().m_WirelessMac = Common::MacAddressToString(mac);
+ SConfig::GetInstance().SaveSettings();
+}
+
+void GetMACAddress(u8* mac)
+{
+ // Parse MAC address from config, and generate a new one if it doesn't
+ // exist or can't be parsed.
+ std::string wireless_mac = SConfig::GetInstance().m_WirelessMac;
+
+ if (Core::g_want_determinism)
+ wireless_mac = "12:34:56:78:9a:bc";
+
+ if (!Common::StringToMacAddress(wireless_mac, mac))
+ {
+ Common::GenerateMacAddress(Common::MACConsumer::IOS, mac);
+ SaveMACAddress(mac);
+ if (!wireless_mac.empty())
+ {
+ ERROR_LOG(IOS_NET, "The MAC provided (%s) is invalid. We have "
+ "generated another one for you.",
+ Common::MacAddressToString(mac).c_str());
+ }
+ }
+
+ INFO_LOG(IOS_NET, "Using MAC address: %s", Common::MacAddressToString(mac).c_str());
+}
+} // namespace Net
+} // namespace IOS
diff --git a/Source/Core/Core/IOS/Network/MACUtils.h b/Source/Core/Core/IOS/Network/MACUtils.h
new file mode 100644
index 0000000000..7cc055d6fb
--- /dev/null
+++ b/Source/Core/Core/IOS/Network/MACUtils.h
@@ -0,0 +1,15 @@
+// Copyright 2017 Dolphin Emulator Project
+// Licensed under GPLv2+
+// Refer to the license.txt file included.
+
+#pragma once
+
+#include "Common/CommonTypes.h"
+
+namespace IOS
+{
+namespace Net
+{
+void GetMACAddress(u8* mac);
+} // namespace Net
+} // namespace IOS
diff --git a/Source/Core/Core/IOS/Network/Net.cpp b/Source/Core/Core/IOS/Network/Net.cpp
index f080079b12..751dc9fb6e 100644
--- a/Source/Core/Core/IOS/Network/Net.cpp
+++ b/Source/Core/Core/IOS/Network/Net.cpp
@@ -24,10 +24,10 @@
#include "Common/Logging/Log.h"
#include "Common/Network.h"
#include "Common/StringUtil.h"
-#include "Core/ConfigManager.h"
#include "Core/Core.h"
#include "Core/HW/Memmap.h"
#include "Core/IOS/Network/ICMP.h"
+#include "Core/IOS/Network/MACUtils.h"
#include "Core/IOS/Network/Socket.h"
#ifdef _WIN32
@@ -62,35 +62,6 @@ namespace HLE
{
namespace Device
{
-static void SaveMacAddress(u8* mac)
-{
- SConfig::GetInstance().m_WirelessMac = Common::MacAddressToString(mac);
- SConfig::GetInstance().SaveSettings();
-}
-
-static void GetMacAddress(u8* mac)
-{
- // Parse MAC address from config, and generate a new one if it doesn't
- // exist or can't be parsed.
- std::string wireless_mac = SConfig::GetInstance().m_WirelessMac;
-
- if (Core::g_want_determinism)
- wireless_mac = "12:34:56:78:9a:bc";
-
- if (!Common::StringToMacAddress(wireless_mac, mac))
- {
- Common::GenerateMacAddress(Common::MACConsumer::IOS, mac);
- SaveMacAddress(mac);
- if (!wireless_mac.empty())
- {
- ERROR_LOG(IOS_NET, "The MAC provided (%s) is invalid. We have "
- "generated another one for you.",
- Common::MacAddressToString(mac).c_str());
- }
- }
- INFO_LOG(IOS_NET, "Using MAC address: %s", Common::MacAddressToString(mac).c_str());
-}
-
// **********************************************************************************
// Handle /dev/net/ncd/manage requests
NetNCDManage::NetNCDManage(u32 device_id, const std::string& device_name)
@@ -146,7 +117,7 @@ IPCCommandResult NetNCDManage::IOCtlV(const IOCtlVRequest& request)
INFO_LOG(IOS_NET, "NET_NCD_MANAGE: IOCTLV_NCD_GETWIRELESSMACADDRESS");
u8 address[Common::MAC_ADDRESS_SIZE];
- GetMacAddress(address);
+ IOS::Net::GetMACAddress(address);
Memory::CopyToEmu(request.io_vectors.at(1).address, address, sizeof(address));
break;
@@ -215,7 +186,7 @@ IPCCommandResult NetWDCommand::IOCtlV(const IOCtlVRequest& request)
info->ntr_allowed_channels = Common::swap16(0xfffe);
u8 address[Common::MAC_ADDRESS_SIZE];
- GetMacAddress(address);
+ IOS::Net::GetMACAddress(address);
memcpy(info->mac, address, sizeof(info->mac));
}
break;
@@ -930,7 +901,7 @@ IPCCommandResult NetIPTop::IOCtlV(const IOCtlVRequest& request)
case 0x1004: // mac address
u8 address[Common::MAC_ADDRESS_SIZE];
- GetMacAddress(address);
+ IOS::Net::GetMACAddress(address);
Memory::CopyToEmu(request.io_vectors[0].address, address, sizeof(address));
break;