mirror of
https://github.com/hrydgard/ppsspp.git
synced 2025-04-02 11:01:50 -04:00
Move out a utility function to Common/Net
This commit is contained in:
parent
5e50a1777a
commit
2a0e3b1084
14 changed files with 31 additions and 81 deletions
|
@ -2389,8 +2389,6 @@ add_library(${CoreLibName} ${CoreLinkType}
|
|||
Core/MIPS/MIPSAsm.h
|
||||
Core/MIPS/MIPSTracer.cpp
|
||||
Core/MIPS/MIPSTracer.h
|
||||
Core/Net/InetCommon.cpp
|
||||
Core/Net/InetCommon.h
|
||||
Core/Net/NetResolver.cpp
|
||||
Core/Net/NetResolver.h
|
||||
Core/MemFault.cpp
|
||||
|
|
|
@ -111,6 +111,31 @@ void DNSResolveFree(addrinfo *res)
|
|||
freeaddrinfo(res);
|
||||
}
|
||||
|
||||
bool GetDefaultOutboundSockaddr(sockaddr_in& destSockaddrIn, socklen_t& destSocklen) {
|
||||
auto fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (fd < 0) {
|
||||
ERROR_LOG(Log::sceNet, "getSockAddrFromDefaultSocket: Failed to open socket (%s)", strerror(socket_errno));
|
||||
return false;
|
||||
}
|
||||
sockaddr_in connectingTo;
|
||||
memset(&connectingTo, 0, sizeof(connectingTo));
|
||||
connectingTo.sin_family = AF_INET;
|
||||
connectingTo.sin_port = htons(53);
|
||||
connectingTo.sin_addr.s_addr = 0x08080808;
|
||||
if (connect(fd, (sockaddr*)&connectingTo, sizeof(connectingTo)) < 0) {
|
||||
ERROR_LOG(Log::sceNet, "getSockAddrFromDefaultSocket: Failed to connect to Google (%s)", strerror(socket_errno));
|
||||
closesocket(fd);
|
||||
return false;
|
||||
}
|
||||
if (getsockname(fd, (sockaddr*)&destSockaddrIn, &destSocklen) < 0) {
|
||||
ERROR_LOG(Log::sceNet, "getSockAddrFromDefaultSocket: Failed to execute getsockname (%s)", strerror(socket_errno));
|
||||
closesocket(fd);
|
||||
return false;
|
||||
}
|
||||
closesocket(fd);
|
||||
return true;
|
||||
}
|
||||
|
||||
bool GetIPList(std::vector<std::string> &IP4s) {
|
||||
char ipstr[INET6_ADDRSTRLEN]; // We use IPv6 length since it's longer than IPv4
|
||||
// getifaddrs first appeared in glibc 2.3, On Android officially supported since __ANDROID_API__ >= 24
|
||||
|
|
|
@ -4,6 +4,8 @@
|
|||
#include <vector>
|
||||
|
||||
struct addrinfo;
|
||||
typedef int socklen_t;
|
||||
struct sockaddr_in;
|
||||
|
||||
namespace net {
|
||||
|
||||
|
@ -20,6 +22,7 @@ enum class DNSType {
|
|||
bool DNSResolve(const std::string &host, const std::string &service, addrinfo **res, std::string &error, DNSType type = DNSType::ANY);
|
||||
void DNSResolveFree(addrinfo *res);
|
||||
bool GetIPList(std::vector<std::string>& IP4s);
|
||||
bool GetDefaultOutboundSockaddr(sockaddr_in& destSockaddrIn, socklen_t& destSocklen);
|
||||
|
||||
int inet_pton(int af, const char* src, void* dst);
|
||||
} // namespace net
|
||||
|
|
|
@ -630,7 +630,6 @@
|
|||
<ClCompile Include="MIPS\x86\X64IRCompSystem.cpp" />
|
||||
<ClCompile Include="MIPS\x86\X64IRCompVec.cpp" />
|
||||
<ClCompile Include="MIPS\x86\X64IRJit.cpp" />
|
||||
<ClCompile Include="Net\InetCommon.cpp" />
|
||||
<ClCompile Include="Net\NetResolver.cpp" />
|
||||
<ClCompile Include="Replay.cpp" />
|
||||
<ClCompile Include="Compatibility.cpp" />
|
||||
|
@ -1223,7 +1222,6 @@
|
|||
<ClInclude Include="MIPS\RiscV\RiscVJit.h" />
|
||||
<ClInclude Include="MIPS\RiscV\RiscVRegCache.h" />
|
||||
<ClInclude Include="MIPS\x86\X64IRJit.h" />
|
||||
<ClInclude Include="Net\InetCommon.h" />
|
||||
<ClInclude Include="Net\NetResolver.h" />
|
||||
<ClInclude Include="Replay.h" />
|
||||
<ClInclude Include="Compatibility.h" />
|
||||
|
|
|
@ -1333,9 +1333,6 @@
|
|||
<ClCompile Include="HLE\sceNetResolver.cpp">
|
||||
<Filter>HLE\Libraries</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Net\InetCommon.cpp">
|
||||
<Filter>Net</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="Net\NetResolver.cpp">
|
||||
<Filter>Net</Filter>
|
||||
</ClCompile>
|
||||
|
@ -2154,9 +2151,6 @@
|
|||
<ClInclude Include="HLE\sceNetResolver.h">
|
||||
<Filter>HLE\Libraries</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Net\InetCommon.h">
|
||||
<Filter>Net</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="Net\NetResolver.h">
|
||||
<Filter>Net</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
@ -20,7 +20,6 @@
|
|||
#include <algorithm>
|
||||
#include "Common/Net/Resolve.h"
|
||||
#include "Common/Net/SocketCompat.h"
|
||||
#include "Core/Net/InetCommon.h"
|
||||
#include "Common/Data/Text/Parsers.h"
|
||||
|
||||
#include "Common/Serialize/Serializer.h"
|
||||
|
|
|
@ -115,9 +115,6 @@ extern SceNetApctlInfoInternal netApctlInfo;
|
|||
extern std::string defaultNetConfigName;
|
||||
extern std::string defaultNetSSID;
|
||||
|
||||
template <typename I> std::string num2hex(I w, size_t hex_len = sizeof(I) << 1);
|
||||
std::string error2str(u32 errorcode);
|
||||
|
||||
void Register_sceNet();
|
||||
void Register_sceNetApctl();
|
||||
void Register_sceWlanDrv();
|
||||
|
|
|
@ -22,9 +22,7 @@
|
|||
#include <fcntl.h>
|
||||
#endif
|
||||
|
||||
// TODO: fixme move Core/Net to Common/Net
|
||||
#include "Common/Net/Resolve.h"
|
||||
#include "Core/Net/InetCommon.h"
|
||||
#include "Common/Data/Text/Parsers.h"
|
||||
|
||||
#include "Common/Serialize/Serializer.h"
|
||||
|
|
|
@ -1,40 +0,0 @@
|
|||
// TODO: license
|
||||
|
||||
// TODO: fixme move Core/Net to Common/Net
|
||||
#include "Common/Net/Resolve.h"
|
||||
#include "Common/Net/SocketCompat.h"
|
||||
#include "Core/Net/InetCommon.h"
|
||||
#include "Core/Config.h"
|
||||
#include "Core/HLE/HLE.h"
|
||||
#include "Core/MemMapHelpers.h"
|
||||
|
||||
#include "Core/HLE/sceNp.h"
|
||||
|
||||
#if PPSSPP_PLATFORM(WINDOWS)
|
||||
#define close closesocket
|
||||
#endif
|
||||
|
||||
bool getDefaultOutboundSockaddr(sockaddr_in& destSockaddrIn, socklen_t& destSocklen) {
|
||||
auto fd = socket(AF_INET, SOCK_STREAM, 0);
|
||||
if (fd < 0) {
|
||||
ERROR_LOG(Log::sceNet, "getSockAddrFromDefaultSocket: Failed to open socket (%s)", strerror(socket_errno));
|
||||
return false;
|
||||
}
|
||||
sockaddr_in connectingTo;
|
||||
memset(&connectingTo, 0, sizeof(connectingTo));
|
||||
connectingTo.sin_family = AF_INET;
|
||||
connectingTo.sin_port = htons(53);
|
||||
connectingTo.sin_addr.s_addr = 0x08080808;
|
||||
if (connect(fd, (sockaddr*) &connectingTo, sizeof(connectingTo)) < 0) {
|
||||
ERROR_LOG(Log::sceNet, "getSockAddrFromDefaultSocket: Failed to connect to Google (%s)", strerror(socket_errno));
|
||||
close(fd);
|
||||
return false;
|
||||
}
|
||||
if (getsockname(fd, (sockaddr*) &destSockaddrIn, &destSocklen) < 0) {
|
||||
ERROR_LOG(Log::sceNet, "getSockAddrFromDefaultSocket: Failed to execute getsockname (%s)", strerror(socket_errno));
|
||||
close(fd);
|
||||
return false;
|
||||
}
|
||||
close(fd);
|
||||
return true;
|
||||
}
|
|
@ -1,12 +0,0 @@
|
|||
#pragma once
|
||||
|
||||
#include "Core/HLE/HLE.h"
|
||||
|
||||
#if PPSSPP_PLATFORM(WINDOWS)
|
||||
#include <winsock2.h>
|
||||
#include <ws2tcpip.h>
|
||||
#else
|
||||
#include <netinet/in.h>
|
||||
#endif
|
||||
|
||||
bool getDefaultOutboundSockaddr(sockaddr_in& destSockaddrIn, socklen_t& destSocklen);
|
|
@ -319,7 +319,6 @@
|
|||
<ClInclude Include="..\..\Core\MIPS\x86\RegCacheFPU.h" />
|
||||
<ClInclude Include="..\..\Core\MIPS\x86\X64IRJit.h" />
|
||||
<ClInclude Include="..\..\Core\MIPS\x86\X64IRRegCache.h" />
|
||||
<ClInclude Include="..\..\Core\Net\InetCommon.h" />
|
||||
<ClInclude Include="..\..\Core\Net\NetResolver.h" />
|
||||
<ClInclude Include="..\..\Core\Opcode.h" />
|
||||
<ClInclude Include="..\..\Core\PSPLoaders.h" />
|
||||
|
@ -620,7 +619,6 @@
|
|||
<ClCompile Include="..\..\Core\MIPS\x86\X64IRCompVec.cpp" />
|
||||
<ClCompile Include="..\..\Core\MIPS\x86\X64IRJit.cpp" />
|
||||
<ClCompile Include="..\..\Core\MIPS\x86\X64IRRegCache.cpp" />
|
||||
<ClCompile Include="..\..\Core\Net\InetCommon.cpp" />
|
||||
<ClCompile Include="..\..\Core\Net\NetResolver.cpp" />
|
||||
<ClCompile Include="..\..\Core\PSPLoaders.cpp" />
|
||||
<ClCompile Include="..\..\Core\Reporting.cpp" />
|
||||
|
|
|
@ -1223,9 +1223,6 @@
|
|||
<ClCompile Include="..\..\Core\HLE\sceNetResolver.cpp">
|
||||
<Filter>HLE</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Core\Net\InetCommon.cpp">
|
||||
<Filter>Net</Filter>
|
||||
</ClCompile>
|
||||
<ClCompile Include="..\..\Core\Net\NetResolver.cpp">
|
||||
<Filter>Net</Filter>
|
||||
</ClCompile>
|
||||
|
@ -1942,9 +1939,6 @@
|
|||
<ClInclude Include="..\..\Core\HLE\sceNetResolver.h">
|
||||
<Filter>HLE</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Core\Net\InetCommon.h">
|
||||
<Filter>Net</Filter>
|
||||
</ClInclude>
|
||||
<ClInclude Include="..\..\Core\Net\NetResolver.h">
|
||||
<Filter>Net</Filter>
|
||||
</ClInclude>
|
||||
|
|
|
@ -510,7 +510,6 @@ EXEC_AND_LIB_FILES := \
|
|||
$(SRC)/Core/MIPS/IR/IRNativeCommon.cpp \
|
||||
$(SRC)/Core/MIPS/IR/IRPassSimplify.cpp \
|
||||
$(SRC)/Core/MIPS/IR/IRRegCache.cpp \
|
||||
$(SRC)/Core/Net/InetCommon.cpp \
|
||||
$(SRC)/Core/Net/NetResolver.cpp \
|
||||
$(SRC)/GPU/Math3D.cpp \
|
||||
$(SRC)/GPU/GPU.cpp \
|
||||
|
|
|
@ -816,8 +816,7 @@ SOURCES_CXX += \
|
|||
$(COREDIR)/MemFault.cpp \
|
||||
$(COREDIR)/MemMap.cpp \
|
||||
$(COREDIR)/MemMapFunctions.cpp \
|
||||
$(COREDIR)/Net/InetCommon.cpp \
|
||||
$(COREDIR)/Net/NetResolver.cpp \
|
||||
$(COREDIR)/Net/NetResolver.cpp \
|
||||
$(COREDIR)/PSPLoaders.cpp \
|
||||
$(COREDIR)/Replay.cpp \
|
||||
$(COREDIR)/Reporting.cpp \
|
||||
|
|
Loading…
Add table
Reference in a new issue