diff --git a/core/libs/prx/libkernel/Socket/src/Udp.cpp b/core/libs/prx/libkernel/Socket/src/Udp.cpp index 5462087a4..bffca9598 100644 --- a/core/libs/prx/libkernel/Socket/src/Udp.cpp +++ b/core/libs/prx/libkernel/Socket/src/Udp.cpp @@ -57,6 +57,7 @@ int NativeError() { case EAGAIN: return 35; case EADDRINUSE: return 48; case EADDRNOTAVAIL: return 49; + case EACCES: return 13; case EMSGSIZE: return 40; case ENETUNREACH: return 51; case EHOSTUNREACH: return 65; @@ -65,6 +66,10 @@ int NativeError() { case ECONNABORTED: return 53; case EISCONN: return 56; case ENOTCONN: return 57; + case ENOBUFS: return 55; + case ETIMEDOUT: return 60; + case EINTR: return 4; + case EINVAL: return 22; default: return 5; } #endif diff --git a/core/libs/tests/GuestTcp.cpp b/core/libs/tests/GuestTcp.cpp index 2c6927336..0b9b42f2a 100644 --- a/core/libs/tests/GuestTcp.cpp +++ b/core/libs/tests/GuestTcp.cpp @@ -27,6 +27,7 @@ int main() { Require(listener >= 0); std::array address{16, 2, 0, 0, 127, 0, 0, 1}; Require(bind_nid_postfix(listener, address.data(), address.size()) == 0); + Require(bind_nid_postfix(listener, address.data(), address.size()) == -1 && *__error_nid_postfix() == 22); Require(listen_nid_postfix(listener, 4) == 0); std::uint32_t address_size = address.size(); Require(getsockname_nid_postfix(listener, address.data(), &address_size) == 0); @@ -34,6 +35,7 @@ int main() { const int client = socket_nid_postfix(2, 1, 0); Require(client >= 0); + Require(accept_nid_postfix(client, nullptr, nullptr) == -1 && *__error_nid_postfix() == 22); Require(connect_nid_postfix(client, address.data(), address.size()) == 0); std::array peer{}; address_size = peer.size();