summaryrefslogtreecommitdiff
path: root/lib/server
diff options
context:
space:
mode:
authorChris Wilson <chris+github@qwirx.com>2006-08-31 23:40:18 +0000
committerChris Wilson <chris+github@qwirx.com>2006-08-31 23:40:18 +0000
commitec4516362d759a8b4070729f5129ba24dcbe5e4a (patch)
tree689d6e9f94d395faf71140cb265e115134d4ec8d /lib/server
parent246dc62e9cc104d67af7bc85c75d8d343026bcf4 (diff)
(refs #3)
Added support for non-blocking sockets on Win32 as well
Diffstat (limited to 'lib/server')
-rw-r--r--lib/server/SocketStreamTLS.cpp8
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)
{