diff options
| author | Jeremy Hylton <jeremy@alum.mit.edu> | 2003-05-05 03:18:41 +0000 |
|---|---|---|
| committer | Jeremy Hylton <jeremy@alum.mit.edu> | 2003-05-05 03:18:41 +0000 |
| commit | 1f5df13b1cedb23f989fec71331153fb1ab98a31 (patch) | |
| tree | 33658189390272381aec6e0fe5d72ca88b519760 /Lib | |
| parent | 7aed4a33acd1758a65e2980d48564b49a18a977c (diff) | |
| download | cpython-git-1f5df13b1cedb23f989fec71331153fb1ab98a31.tar.gz | |
Backport fix for SF #723831: urlopen() raises URLError.
Diffstat (limited to 'Lib')
| -rw-r--r-- | Lib/urllib2.py | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/Lib/urllib2.py b/Lib/urllib2.py index 44e21644c4..e70b9e11e4 100644 --- a/Lib/urllib2.py +++ b/Lib/urllib2.py @@ -780,20 +780,17 @@ class AbstractHTTPHandler(BaseHandler): if not host: raise URLError('no host given') - try: - h = http_class(host) # will parse host:port - if req.has_data(): - data = req.get_data() - h.putrequest('POST', req.get_selector()) - if not req.headers.has_key('Content-type'): - h.putheader('Content-type', - 'application/x-www-form-urlencoded') - if not req.headers.has_key('Content-length'): - h.putheader('Content-length', '%d' % len(data)) - else: - h.putrequest('GET', req.get_selector()) - except socket.error, err: - raise URLError(err) + h = http_class(host) # will parse host:port + if req.has_data(): + data = req.get_data() + h.putrequest('POST', req.get_selector()) + if not req.headers.has_key('Content-type'): + h.putheader('Content-type', + 'application/x-www-form-urlencoded') + if not req.headers.has_key('Content-length'): + h.putheader('Content-length', '%d' % len(data)) + else: + h.putrequest('GET', req.get_selector()) scheme, sel = splittype(req.get_selector()) sel_host, sel_path = splithost(sel) @@ -802,7 +799,12 @@ class AbstractHTTPHandler(BaseHandler): h.putheader(*args) for k, v in req.headers.items(): h.putheader(k, v) - h.endheaders() + # httplib will attempt to connect() here. be prepared + # to convert a socket error to a URLError. + try: + h.endheaders() + except socket.error, err: + raise URLError(err) if req.has_data(): h.send(data) |
