]> granicus.if.org Git - python/commitdiff
Merged revisions 79448 via svnmerge from
authorAntoine Pitrou <solipsis@pitrou.net>
Fri, 26 Mar 2010 19:32:24 +0000 (19:32 +0000)
committerAntoine Pitrou <solipsis@pitrou.net>
Fri, 26 Mar 2010 19:32:24 +0000 (19:32 +0000)
svn+ssh://pythondev@svn.python.org/python/trunk

........
  r79448 | antoine.pitrou | 2010-03-26 20:27:16 +0100 (ven., 26 mars 2010) | 6 lines

  Issue #8222: Enable the SSL_MODE_AUTO_RETRY flag on SSL sockets, so that blocking
  reads and writes are always retried by OpenSSL itself.

  (this is a followup to issue #3890)
........

Modules/_ssl.c

index a6c3eb8b2c9475a0b697468026e4dcb523f0e274..66fd626602f8b54774595ab748cbf5ecb5b64802 100644 (file)
@@ -9,8 +9,6 @@
    directly.
 
    XXX should partial writes be enabled, SSL_MODE_ENABLE_PARTIAL_WRITE?
-
-   XXX what about SSL_MODE_AUTO_RETRY?
 */
 
 #include "Python.h"
@@ -371,6 +369,7 @@ newPySSLObject(PySocketSockObject *Sock, char *key_file, char *cert_file,
        self->ssl = SSL_new(self->ctx); /* New ssl struct */
        PySSL_END_ALLOW_THREADS
        SSL_set_fd(self->ssl, Sock->sock_fd);   /* Set the socket for SSL */
+       SSL_set_mode(self->ssl, SSL_MODE_AUTO_RETRY);
 
        /* If the socket is in non-blocking mode or timeout mode, set the BIO
         * to non-blocking mode (blocking is the default)