net/SocketDescriptor: implement SetNonBlocking() on Windows

This commit is contained in:
Max Kellermann 2017-08-10 13:18:23 +02:00
parent fab12ef241
commit b180604422
2 changed files with 13 additions and 0 deletions

View File

@ -181,6 +181,17 @@ SocketDescriptor::GetError()
: errno;
}
#ifdef _WIN32
bool
SocketDescriptor::SetNonBlocking() noexcept
{
u_long val = 1;
return ioctlsocket(fd, FIONBIO, &val) == 0;
}
#endif
bool
SocketDescriptor::SetOption(int level, int name,
const void *value, size_t size)

View File

@ -98,6 +98,8 @@ public:
using FileDescriptor::Duplicate;
using FileDescriptor::Close;
#else
bool SetNonBlocking() noexcept;
/**
* This method replaces FileDescriptor::Close(), using closesocket()
* on Windows. FileDescriptor::Close() is not virtual, so be