6 void dragonnet_perror(const char *str)
10 FormatMessageW(FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
11 NULL, WSAGetLastError(), MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), (LPWSTR) &msg, 0, NULL);
12 fprintf(stderr, "%s: %S\n", str, msg);
19 bool dragonnet_isconnerr()
22 int err = WSAGetLastError();
23 return err == WSAECONNRESET || err == WSAETIMEDOUT || err == WSAEDISCON;
25 return errno == ECONNRESET || errno == EPIPE || errno == ETIMEDOUT;
30 bool dragonnet_isintrerr()
33 return WSAGetLastError() == WSAEINTR;
35 return errno == EINTR;