diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ext/openssl/ossl_ssl.c | 2 |
2 files changed, 8 insertions, 1 deletions
@@ -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 |