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 @@
-
+
+
@@ -420,8 +421,9 @@
-
+
+
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 @@
IOS
+
+ IOS\Network
+
IOS\Network
@@ -1353,6 +1356,9 @@
IOS\Network
+
+ IOS\Network
+
IOS\Network
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
+
+#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;