From a2150c70bb1ab8e4b3015fb9b415ecc1adb4eced Mon Sep 17 00:00:00 2001 From: nmzik Date: Tue, 1 Sep 2026 20:46:15 +0400 Subject: [PATCH] network: implement Linux getsockname --- src/libs/network.cpp | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/src/libs/network.cpp b/src/libs/network.cpp index 0ca34517c..037bbc6bd 100644 --- a/src/libs/network.cpp +++ b/src/libs/network.cpp @@ -1055,8 +1055,7 @@ static int ConvertGuestSockaddr(const void* addr, uint32_t addrlen, sockaddr_sto return 0; } -#if defined(_WIN32) -static int ConvertHostSockaddr(const sockaddr_storage* addr, int addrlen, void* out, +static int ConvertHostSockaddr(const sockaddr_storage* addr, SocketLength addrlen, void* out, uint32_t* out_len) { EXIT_IF(addr == nullptr); EXIT_IF(out_len == nullptr); @@ -1066,7 +1065,8 @@ static int ConvertHostSockaddr(const sockaddr_storage* addr, int addrlen, void* return -1; } - if (addr->ss_family != AF_INET || addrlen < static_cast(sizeof(sockaddr_in))) { + if (addr->ss_family != AF_INET || + addrlen < static_cast(sizeof(sockaddr_in))) { *Posix::GetErrorAddr() = Posix::POSIX_EOPNOTSUPP; return -1; } @@ -1088,7 +1088,6 @@ static int ConvertHostSockaddr(const sockaddr_storage* addr, int addrlen, void* *out_len = guest_addrlen; return 0; } -#endif static bool GetSocketBackend(int guest_fd, NativeSocket* out) { EXIT_IF(out == nullptr); @@ -1851,19 +1850,13 @@ int KYTY_SYSV_ABI Getsockname(int s, void* addr, uint32_t* addrlen) { return -1; } -#if defined(_WIN32) sockaddr_storage host_addr {}; - int host_addrlen = sizeof(host_addr); - if (::getsockname(socket, reinterpret_cast(&host_addr), &host_addrlen) == - SOCKET_ERROR) { + SocketLength host_addrlen = sizeof(host_addr); + if (::getsockname(socket, reinterpret_cast(&host_addr), &host_addrlen) != 0) { return SetHostSocketError(); } return ConvertHostSockaddr(&host_addr, host_addrlen, addr, addrlen); -#else - *Posix::GetErrorAddr() = Posix::POSIX_ENOSYS; - return -1; -#endif } int KYTY_SYSV_ABI Getsockopt(int s, int level, int optname, void* optval, uint32_t* optlen) {