aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--ext/openssl/ossl_ssl.c2
2 files changed, 8 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index dd96c90f25..4c6d0cc574 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Wed Sep 8 22:46:31 2010 NAKAMURA, Hiroshi <nahi@ruby-lang.org>
+
+ * ext/openssl/ossl_ssl.c (ssl_get_error): Thread context switch was
+ blocked on Windows while blocking call for SSLSocket. Need to
+ convert errno for letting rb_io_wait_readable detect EWOULDBLOCK.
+ Patch by arton. ref #3794.
+
Wed Sep 8 20:56:57 2010 Tanaka Akira <akr@fsij.org>
* ext/pathname/pathname.c (path_setgid_p): Pathname#setgid? translated
diff --git a/ext/openssl/ossl_ssl.c b/ext/openssl/ossl_ssl.c
index 793d5a65fd..a690202258 100644
--- a/ext/openssl/ossl_ssl.c
+++ b/ext/openssl/ossl_ssl.c
@@ -1018,7 +1018,7 @@ ossl_ssl_setup(VALUE self)
}
#ifdef _WIN32
-#define ssl_get_error(ssl, ret) (errno = WSAGetLastError(), SSL_get_error(ssl, ret))
+#define ssl_get_error(ssl, ret) (errno = rb_w32_map_errno(WSAGetLastError()), SSL_get_error(ssl, ret))
#else
#define ssl_get_error(ssl, ret) SSL_get_error(ssl, ret)
#endif