summaryrefslogtreecommitdiffstats
path: root/win32
diff options
context:
space:
mode:
authorusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-03 07:30:19 +0000
committerusa <usa@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2009-08-03 07:30:19 +0000
commit2d6dd47f4bde9660931f83618154327595e0c382 (patch)
tree02c71fef2a5d64355c6968cda9cc57c29c5b4a3e /win32
parentf2d8065502f75debea924bcd75162d7dcadf3dfe (diff)
downloadruby-2d6dd47f4bde9660931f83618154327595e0c382.tar.gz
ruby-2d6dd47f4bde9660931f83618154327595e0c382.tar.xz
ruby-2d6dd47f4bde9660931f83618154327595e0c382.zip
* win32/win32.c (rb_w32_connect): return value was broken when some
error occurred. [ruby-core:24234] git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24367 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'win32')
-rw-r--r--win32/win32.c11
1 files changed, 4 insertions, 7 deletions
diff --git a/win32/win32.c b/win32/win32.c
index b98575572..8f2a4ac8f 100644
--- a/win32/win32.c
+++ b/win32/win32.c
@@ -2591,14 +2591,11 @@ rb_w32_connect(int s, const struct sockaddr *addr, int addrlen)
RUBY_CRITICAL({
r = connect(TO_SOCKET(s), addr, addrlen);
if (r == SOCKET_ERROR) {
- r = WSAGetLastError();
- if (r != WSAEWOULDBLOCK) {
- errno = map_errno(r);
- }
- else {
+ int err = WSAGetLastError();
+ if (err != WSAEWOULDBLOCK)
+ errno = map_errno(err);
+ else
errno = EINPROGRESS;
- r = -1;
- }
}
});
return r;