diff -r 6aa7ca40b100 Lib/ssl.py --- a/Lib/ssl.py Thu Aug 29 13:39:44 2013 -0700 +++ b/Lib/ssl.py Thu Aug 29 23:35:35 2013 +0200 @@ -144,7 +144,7 @@ from _ssl import enum_cert_store, X509_ASN_ENCODING, PKCS_7_ASN_ENCODING from socket import getnameinfo as _getnameinfo -from socket import socket, AF_INET, SOCK_STREAM, create_connection +from socket import socket, AF_INET, SOCK_STREAM, SHUT_RDWR, create_connection import base64 # for DER-to-PEM translation import traceback import errno @@ -571,6 +571,8 @@ def shutdown(self, how): self._checkClosed() + if self._sslobj and how != SHUT_RDWR: + raise ValueError("SSL sockets don't support one-way shutdown") self._sslobj = None socket.shutdown(self, how)