Antoine Pitrou <pit...@free.fr> added the comment: I don't see any discrepancy here (with Python 3.3). Under both Linux and Windows, the client thread prints:
ERR [Errno 3] _ssl.c:1126: The operation did not complete (write) done The only difference is that the server thread receives 128KB under Linux, and 48KB under Windows. I think the main variation comes not from OpenSSL, but from the OS's thread scheduling algorithms. If you do a large write, you have to be prepared to get an error, because the buffers may be too small. I agree it might seem strange that OpenSSL returns an error rather than the number of sent bytes, and this behaviour could actually be changed at the OpenSSL level (see http://www.openssl.org/docs/ssl/SSL_write.html) by allowing people to use the SSL_MODE_ENABLE_PARTIAL_WRITE option. However, doing so by default could break existing code which assumes that writes either fail or succeed completely. issue8240 talks about a slightly related request. ---------- title: non-blocking SSL write in Windows sends large data but raises exception -> non-blocking SSL write fails if a partial write was issued type: behavior -> feature request versions: +Python 3.3 -Python 2.6, Python 3.2 _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue12197> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com