diff options
author | Neal Norwitz <nnorwitz@gmail.com> | 2007-03-20 08:14:57 +0000 |
---|---|---|
committer | Neal Norwitz <nnorwitz@gmail.com> | 2007-03-20 08:14:57 +0000 |
commit | 46e6b374b158fb453bff16e45057b775f447583f (patch) | |
tree | c11b86770c857d9f960d61ecdfb1dcc3263a186e /Lib/urllib.py | |
parent | 52e5f7dd81636862c81cd518f90c692412433d41 (diff) | |
download | cpython-46e6b374b158fb453bff16e45057b775f447583f.tar.gz |
Try to get test_urllib to pass on Windows by closing the file.
I'm guessing that's the problem. h.getfile() must be called *after*
h.getreply() and the fp can be None.
I'm not entirely convinced this is the best fix (or even correct).
The buildbots will tell us if things improve or not. I don't
know if this needs to be backported (assuming it actually works).
Diffstat (limited to 'Lib/urllib.py')
-rw-r--r-- | Lib/urllib.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Lib/urllib.py b/Lib/urllib.py index c000f1129e..7b2f1f7425 100644 --- a/Lib/urllib.py +++ b/Lib/urllib.py @@ -326,11 +326,12 @@ class URLopener: if data is not None: h.send(data) errcode, errmsg, headers = h.getreply() + fp = h.getfile() if errcode == -1: + if fp: fp.close() # something went wrong with the HTTP status line raise IOError, ('http protocol error', 0, 'got a bad status line', None) - fp = h.getfile() if errcode == 200: return addinfourl(fp, headers, "http:" + url) else: @@ -417,11 +418,12 @@ class URLopener: if data is not None: h.send(data) errcode, errmsg, headers = h.getreply() + fp = h.getfile() if errcode == -1: + if fp: fp.close() # something went wrong with the HTTP status line raise IOError, ('http protocol error', 0, 'got a bad status line', None) - fp = h.getfile() if errcode == 200: return addinfourl(fp, headers, "https:" + url) else: |