summaryrefslogtreecommitdiffstats
path: root/Lib/urllib/request.py
diff options
context:
space:
mode:
authorNadeem Vawda <nadeem.vawda@gmail.com>2012-10-21 15:37:43 (GMT)
committerNadeem Vawda <nadeem.vawda@gmail.com>2012-10-21 15:37:43 (GMT)
commitbd26b5463eb4547a2c679e562180364b0767cf32 (patch)
treeb1fa315fc81dc57e52d772912cbbfcee721dc112 /Lib/urllib/request.py
parentca4a52513bf7d08d4ba26b18d9cba4afd5c02176 (diff)
downloadcpython-bd26b5463eb4547a2c679e562180364b0767cf32.zip
cpython-bd26b5463eb4547a2c679e562180364b0767cf32.tar.gz
cpython-bd26b5463eb4547a2c679e562180364b0767cf32.tar.bz2
Issue #12692: Fix resource leak in urllib.request.
Diffstat (limited to 'Lib/urllib/request.py')
-rw-r--r--Lib/urllib/request.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/Lib/urllib/request.py b/Lib/urllib/request.py
index 88f3ce1..250d89e 100644
--- a/Lib/urllib/request.py
+++ b/Lib/urllib/request.py
@@ -1255,6 +1255,12 @@ class AbstractHTTPHandler(BaseHandler):
raise URLError(err)
else:
r = h.getresponse()
+ # If the server does not send us a 'Connection: close' header,
+ # HTTPConnection assumes the socket should be left open. Manually
+ # mark the socket to be closed when this response object goes away.
+ if h.sock:
+ h.sock.close()
+ h.sock = None
r.url = req.get_full_url()
# This line replaces the .msg attribute of the HTTPResponse