Kaydet (Commit) 9298eff5 authored tarafından Martin v. Löwis's avatar Martin v. Löwis

Bug #978833: Really close underlying socket in _socketobject.close.

Fix httplib.HTTPConnection.getresponse to not close the
socket if it is still needed for the response.
üst 5f135787
......@@ -926,8 +926,8 @@ class HTTPConnection:
self.__state = _CS_IDLE
if response.will_close:
# this effectively passes the connection to the response
self.close()
# Pass the socket to the response
self.sock = None
else:
# remember this, so we can tell when it is complete
self.__response = response
......
......@@ -139,6 +139,8 @@ class _closedsocket(object):
__slots__ = []
def _dummy(*args):
raise error(EBADF, 'Bad file descriptor')
def close(self):
pass
# All _delegate_methods must also be initialized here.
send = recv = recv_into = sendto = recvfrom = recvfrom_into = _dummy
__getattr__ = _dummy
......@@ -157,6 +159,7 @@ class _socketobject(object):
setattr(self, method, getattr(_sock, method))
def close(self):
self._sock.close()
self._sock = _closedsocket()
dummy = self._sock._dummy
for method in _delegate_methods:
......
......@@ -42,6 +42,8 @@ Core and builtins
Library
-------
- Bug #978833: Really close underlying socket in _socketobject.close.
- Bug #1459963: urllib and urllib2 now normalize HTTP header names correctly
with title().
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment