Browse Source

[network] Return in-progress for nonblocking connect

xbzk 1 day ago
parent
commit
420d701285
  1. 6
      src/core/internal_network/network.cpp

6
src/core/internal_network/network.cpp

@ -40,6 +40,7 @@ namespace Network {
namespace { namespace {
enum class CallType { enum class CallType {
Connect,
Send, Send,
Other, Other,
}; };
@ -131,7 +132,7 @@ Errno TranslateNativeError(int e, CallType call_type = CallType::Other) {
case WSAENOTCONN: case WSAENOTCONN:
return Errno::NOTCONN; return Errno::NOTCONN;
case WSAEWOULDBLOCK: case WSAEWOULDBLOCK:
return Errno::AGAIN;
return call_type == CallType::Connect ? Errno::INPROGRESS : Errno::AGAIN;
case WSAECONNREFUSED: case WSAECONNREFUSED:
return Errno::CONNREFUSED; return Errno::CONNREFUSED;
case WSAECONNABORTED: case WSAECONNABORTED:
@ -563,6 +564,7 @@ int TranslateTypeToNative(Type type) {
NETWORK_PROTOCOL_TRANSLATE_ELEM(UDPLITE) NETWORK_PROTOCOL_TRANSLATE_ELEM(UDPLITE)
#elif defined(_WIN32) #elif defined(_WIN32)
#define NETWORK_PROTOCOL_TRANSLATE_LIST \ #define NETWORK_PROTOCOL_TRANSLATE_LIST \
NETWORK_PROTOCOL_TRANSLATE_ELEM(IP) \
/*NETWORK_PROTOCOL_TRANSLATE_ELEM(HOPOPTS)*/ \ /*NETWORK_PROTOCOL_TRANSLATE_ELEM(HOPOPTS)*/ \
NETWORK_PROTOCOL_TRANSLATE_ELEM(ICMP) \ NETWORK_PROTOCOL_TRANSLATE_ELEM(ICMP) \
NETWORK_PROTOCOL_TRANSLATE_ELEM(IGMP) \ NETWORK_PROTOCOL_TRANSLATE_ELEM(IGMP) \
@ -888,7 +890,7 @@ Errno Socket::Connect(SockAddrIn addr_in) {
return Errno::SUCCESS; return Errno::SUCCESS;
} }
return GetAndLogLastError();
return GetAndLogLastError(CallType::Connect);
} }
std::pair<SockAddrIn, Errno> Socket::GetPeerName() { std::pair<SockAddrIn, Errno> Socket::GetPeerName() {

Loading…
Cancel
Save