From 33ff7807e0115db4e31ebdc2e7437ed02c3f383b Mon Sep 17 00:00:00 2001 From: cxl Date: Thu, 20 Jan 2011 20:06:29 +0000 Subject: [PATCH] *Web: Fixed critical bug with non-blocking sockets in Linux git-svn-id: svn://ultimatepp.org/upp/trunk@3051 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/Web/socket.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/uppsrc/Web/socket.cpp b/uppsrc/Web/socket.cpp index 27e59331f..baba77330 100644 --- a/uppsrc/Web/socket.cpp +++ b/uppsrc/Web/socket.cpp @@ -20,7 +20,7 @@ enum { #ifdef PLATFORM_WIN32 IS_BLOCKED = SOCKERR(EWOULDBLOCK), #else - IS_BLOCKED = SOCKERR(EINPROGRESS), + IS_BLOCKED = SOCKERR(EWOULDBLOCK), #endif }; @@ -243,7 +243,12 @@ bool Socket::Data::OpenClient(const char *host, int port, bool nodelay, dword *m return true; int err = GetLastError(); - if(err != IS_BLOCKED) { +#ifdef PLATFORM_WIN32 + if(err != SOCKERR(EWOULDBLOCK)) +#else + if(err != SOCKERR(EINPROGRESS)) +#endif + { SetSockError(NFormat("connect(%s:%d)", host, port)); SLOG("Socket::Data::OpenClient -> connect error, returning false"); return false;