mirror of
https://github.com/KytyPS5/KytyPS5.git
synced 2026-10-28 05:46:56 +01:00
net: add TCP_NODELAY and translate socket errors
This commit is contained in:
+1
-1
@@ -168,7 +168,7 @@ int KYTY_SYSV_ABI NetSocketClose(int s) {
|
|||||||
|
|
||||||
int KYTY_SYSV_ABI NetSetsockopt(int s, int level, int optname, const void* optval,
|
int KYTY_SYSV_ABI NetSetsockopt(int s, int level, int optname, const void* optval,
|
||||||
uint32_t optlen) {
|
uint32_t optlen) {
|
||||||
return NET_CALL(Net::Setsockopt(s, level, optname, optval, optlen));
|
return FinishSocketCall(Net::Setsockopt(s, level, optname, optval, optlen));
|
||||||
}
|
}
|
||||||
|
|
||||||
uint32_t KYTY_SYSV_ABI NetHtonl(uint32_t host32) {
|
uint32_t KYTY_SYSV_ABI NetHtonl(uint32_t host32) {
|
||||||
|
|||||||
+10
-5
@@ -14,6 +14,7 @@
|
|||||||
#endif
|
#endif
|
||||||
#else
|
#else
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
#include <netinet/tcp.h>
|
||||||
#include <sys/socket.h>
|
#include <sys/socket.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
@@ -1901,17 +1902,21 @@ int KYTY_SYSV_ABI Setsockopt(int s, int level, int optname, const void* optval,
|
|||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
#else
|
||||||
|
// Guest TCP options: IPPROTO_TCP=6, TCP_NODELAY=1.
|
||||||
|
if (level != 6 || optname != 1) {
|
||||||
|
return SetGuestSocketError(Posix::POSIX_ENOPROTOOPT);
|
||||||
|
}
|
||||||
|
level = IPPROTO_TCP;
|
||||||
|
optname = TCP_NODELAY;
|
||||||
|
#endif
|
||||||
|
|
||||||
if (::setsockopt(socket, ConvertSocketOptionLevel(level), optname,
|
if (::setsockopt(socket, ConvertSocketOptionLevel(level), optname,
|
||||||
static_cast<const char*>(optval), static_cast<int>(optlen)) == SOCKET_ERROR) {
|
static_cast<const char*>(optval), static_cast<SocketLength>(optlen)) != 0) {
|
||||||
return SetHostSocketError();
|
return SetHostSocketError();
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
#else
|
|
||||||
*Posix::GetErrorAddr() = Posix::POSIX_ENOSYS;
|
|
||||||
return -1;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int64_t KYTY_SYSV_ABI Send(int s, const void* buf, uint64_t len, int flags) {
|
int64_t KYTY_SYSV_ABI Send(int s, const void* buf, uint64_t len, int flags) {
|
||||||
|
|||||||
Reference in New Issue
Block a user