[Python-checkins] r79448 - in python/trunk: Misc/NEWS Modules/_ssl.c
antoine.pitrou
python-checkins at python.org
Fri Mar 26 20:27:16 CET 2010
Author: antoine.pitrou
Date: Fri Mar 26 20:27:16 2010
New Revision: 79448
Log:
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)
Modified:
python/trunk/Misc/NEWS
python/trunk/Modules/_ssl.c
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Fri Mar 26 20:27:16 2010
@@ -59,7 +59,9 @@
- Issue #8200: logging: Handle errors when multiprocessing is not
fully loaded when logging occurs.
-- Issue #3890: Fix recv() and recv_into() on non-blocking SSL sockets.
+- Issue #3890, #8222: Fix recv() and recv_into() on non-blocking SSL sockets.
+ Also, enable the SSL_MODE_AUTO_RETRY flag on SSL sockets, so that blocking
+ reads and writes are always retried by OpenSSL itself.
- Issue #8179: Fix macpath.realpath() on a non-existing path.
Modified: python/trunk/Modules/_ssl.c
==============================================================================
--- python/trunk/Modules/_ssl.c (original)
+++ python/trunk/Modules/_ssl.c Fri Mar 26 20:27:16 2010
@@ -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"
@@ -370,6 +368,7 @@
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)
More information about the Python-checkins
mailing list