diff options
author | Chris Wilson <chris+github@qwirx.com> | 2006-08-31 23:40:18 +0000 |
---|---|---|
committer | Chris Wilson <chris+github@qwirx.com> | 2006-08-31 23:40:18 +0000 |
commit | ec4516362d759a8b4070729f5129ba24dcbe5e4a (patch) | |
tree | 689d6e9f94d395faf71140cb265e115134d4ec8d /lib | |
parent | 246dc62e9cc104d67af7bc85c75d8d343026bcf4 (diff) |
(refs #3)
Added support for non-blocking sockets on Win32 as well
Diffstat (limited to 'lib')
-rw-r--r-- | lib/server/SocketStreamTLS.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/server/SocketStreamTLS.cpp b/lib/server/SocketStreamTLS.cpp index 94aa3868..af4ad460 100644 --- a/lib/server/SocketStreamTLS.cpp +++ b/lib/server/SocketStreamTLS.cpp @@ -137,8 +137,12 @@ void SocketStreamTLS::Handshake(const TLSContext &rContext, bool IsServer) THROW_EXCEPTION(ServerException, TLSAllocationFailed) } -#ifndef WIN32 // Make the socket non-blocking so timeouts on Read work + +#ifdef WIN32 + u_long nonblocking = 1; + ioctlsocket(socket, FIONBIO, &nonblocking); +#else // !WIN32 // This is more portable than using ioctl with FIONBIO int statusFlags = 0; if(::fcntl(socket, F_GETFL, &statusFlags) < 0 @@ -309,7 +313,7 @@ int SocketStreamTLS::Read(void *pBuffer, int NBytes, int Timeout) case SSL_ERROR_WANT_READ: case SSL_ERROR_WANT_WRITE: - // wait for the requried data + // wait for the required data // Will only get once around this loop, so don't need to calculate timeout values if(WaitWhenRetryRequired(se, Timeout) == false) { |