mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-06 09:22:35 +00:00
added connect
This commit is contained in:
parent
3a2675c906
commit
65ebf418ee
@ -16,8 +16,12 @@ int PS4_SYSV_ABI posix_socket(int domain, int type, int protocol) {
|
|||||||
return socket;
|
return socket;
|
||||||
}
|
}
|
||||||
int PS4_SYSV_ABI posix_connect(int sockfd, const struct OrbisNetSockaddr* addr, socklen_t addrlen) {
|
int PS4_SYSV_ABI posix_connect(int sockfd, const struct OrbisNetSockaddr* addr, socklen_t addrlen) {
|
||||||
LOG_ERROR(Lib_Kernel, "(STUBBED) callled");
|
auto* netcall = Common::Singleton<NetPosixInternal>::Instance();
|
||||||
return 0;
|
int connect = netcall->net_connect(sockfd, addr, addrlen);
|
||||||
|
if (connect < 0) {
|
||||||
|
LOG_ERROR(Lib_Kernel, "error in connect = {}", connect);
|
||||||
|
}
|
||||||
|
return connect;
|
||||||
}
|
}
|
||||||
u32 PS4_SYSV_ABI posix_htonl(u32 hostlong) {
|
u32 PS4_SYSV_ABI posix_htonl(u32 hostlong) {
|
||||||
return htonl(hostlong);
|
return htonl(hostlong);
|
||||||
@ -97,4 +101,16 @@ int NetPosixInternal::net_listen(int sockfd, int backlog) {
|
|||||||
return 0; // TODO logging and error return
|
return 0; // TODO logging and error return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int NetPosixInternal::net_connect(int sockfd, const OrbisNetSockaddr* addr, socklen_t addrlen) {
|
||||||
|
std::scoped_lock lock{m_mutex};
|
||||||
|
const auto it = socks.find(sockfd);
|
||||||
|
if (it != socks.end()) {
|
||||||
|
s_socket sock = it->second;
|
||||||
|
sockaddr addr2;
|
||||||
|
convertOrbisNetSockaddrToPosix(addr, &addr2);
|
||||||
|
return ::connect(sock, &addr2, sizeof(sockaddr_in));
|
||||||
|
}
|
||||||
|
return 0; // TODO logging and error return
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Libraries::Kernel
|
} // namespace Libraries::Kernel
|
@ -68,6 +68,7 @@ public:
|
|||||||
int net_socket(int domain, int type, int protocol);
|
int net_socket(int domain, int type, int protocol);
|
||||||
int net_bind(int sockfd, const struct OrbisNetSockaddr* addr, socklen_t addrlen);
|
int net_bind(int sockfd, const struct OrbisNetSockaddr* addr, socklen_t addrlen);
|
||||||
int net_listen(int sockfd, int backlog);
|
int net_listen(int sockfd, int backlog);
|
||||||
|
int net_connect(int sockfd, const struct OrbisNetSockaddr* addr, socklen_t addrlen);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
s_socket sock;
|
s_socket sock;
|
||||||
|
Loading…
Reference in New Issue
Block a user