mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2025-08-06 01:12:33 +00:00
added listen
This commit is contained in:
parent
9befb9b189
commit
da4b3b511f
@ -249,8 +249,8 @@ set(KERNEL_LIB src/core/libraries/kernel/sync/mutex.cpp
|
|||||||
src/core/libraries/kernel/time.h
|
src/core/libraries/kernel/time.h
|
||||||
src/core/libraries/kernel/orbis_error.h
|
src/core/libraries/kernel/orbis_error.h
|
||||||
src/core/libraries/kernel/posix_error.h
|
src/core/libraries/kernel/posix_error.h
|
||||||
src/core/libraries/kernel/net.cpp
|
src/core/libraries/kernel/posix_net.cpp
|
||||||
src/core/libraries/kernel/net.h
|
src/core/libraries/kernel/posix_net.h
|
||||||
)
|
)
|
||||||
|
|
||||||
set(NETWORK_LIBS src/core/libraries/network/http.cpp
|
set(NETWORK_LIBS src/core/libraries/network/http.cpp
|
||||||
|
@ -27,7 +27,10 @@ int PS4_SYSV_ABI posix_bind(int sockfd, const struct OrbisNetSockaddr* addr, soc
|
|||||||
return bind;
|
return bind;
|
||||||
}
|
}
|
||||||
int PS4_SYSV_ABI posix_listen(int sockfd, int backlog) {
|
int PS4_SYSV_ABI posix_listen(int sockfd, int backlog) {
|
||||||
return 0;
|
auto* netcall = Common::Singleton<NetPosixInternal>::Instance();
|
||||||
|
int listen = netcall->net_listen(sockfd,backlog);
|
||||||
|
// todo check for errors
|
||||||
|
return listen;
|
||||||
}
|
}
|
||||||
int PS4_SYSV_ABI posix_accept(int sockfd, struct OrbisNetSockaddr* addr, socklen_t* addrlen) {
|
int PS4_SYSV_ABI posix_accept(int sockfd, struct OrbisNetSockaddr* addr, socklen_t* addrlen) {
|
||||||
return 0;
|
return 0;
|
||||||
@ -73,4 +76,14 @@ int NetPosixInternal::net_bind(int sockfd, const struct OrbisNetSockaddr* addr,
|
|||||||
}
|
}
|
||||||
return 0; // TODO logging and error return
|
return 0; // TODO logging and error return
|
||||||
}
|
}
|
||||||
|
int NetPosixInternal::net_listen(int sockfd, int backlog) {
|
||||||
|
std::scoped_lock lock{m_mutex};
|
||||||
|
const auto it = socks.find(sockfd);
|
||||||
|
if (it != socks.end()) {
|
||||||
|
s_socket sock = it->second;
|
||||||
|
return ::listen(sock,backlog);
|
||||||
|
}
|
||||||
|
return 0; // TODO logging and error return
|
||||||
|
}
|
||||||
|
|
||||||
} // namespace Libraries::Kernel
|
} // namespace Libraries::Kernel
|
@ -55,6 +55,7 @@ public:
|
|||||||
~NetPosixInternal() = default;
|
~NetPosixInternal() = default;
|
||||||
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);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
s_socket sock;
|
s_socket sock;
|
||||||
|
Loading…
Reference in New Issue
Block a user