summaryrefslogtreecommitdiff
path: root/Lib/httplib.py
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/httplib.py')
-rw-r--r--Lib/httplib.py42
1 files changed, 12 insertions, 30 deletions
diff --git a/Lib/httplib.py b/Lib/httplib.py
index d66a9fcd05..b1452f439c 100644
--- a/Lib/httplib.py
+++ b/Lib/httplib.py
@@ -67,6 +67,7 @@ Req-sent-unread-response _CS_REQ_SENT <response_class>
"""
from array import array
+import os
import socket
from sys import py3kwarning
from urlparse import urlsplit
@@ -756,27 +757,17 @@ class HTTPConnection:
else:
raise NotConnected()
- # send the data to the server. if we get a broken pipe, then close
- # the socket. we want to reconnect when somebody tries to send again.
- #
- # NOTE: we DO propagate the error, though, because we cannot simply
- # ignore the error... the caller will know if they can retry.
if self.debuglevel > 0:
print "send:", repr(str)
- try:
- blocksize=8192
- if hasattr(str,'read') and not isinstance(str, array):
- if self.debuglevel > 0: print "sendIng a read()able"
- data=str.read(blocksize)
- while data:
- self.sock.sendall(data)
- data=str.read(blocksize)
- else:
- self.sock.sendall(str)
- except socket.error, v:
- if v.args[0] == 32: # Broken pipe
- self.close()
- raise
+ blocksize = 8192
+ if hasattr(str,'read') and not isinstance(str, array):
+ if self.debuglevel > 0: print "sendIng a read()able"
+ data = str.read(blocksize)
+ while data:
+ self.sock.sendall(data)
+ data = str.read(blocksize)
+ else:
+ self.sock.sendall(str)
def _output(self, s):
"""Add a line of output to the current request buffer.
@@ -941,15 +932,7 @@ class HTTPConnection:
def request(self, method, url, body=None, headers={}):
"""Send a complete request to the server."""
-
- try:
- self._send_request(method, url, body, headers)
- except socket.error, v:
- # trap 'Broken pipe' if we're allowed to automatically reconnect
- if v.args[0] != 32 or not self.auto_open:
- raise
- # try one more time
- self._send_request(method, url, body, headers)
+ self._send_request(method, url, body, headers)
def _set_content_length(self, body):
# Set the content-length based on the body.
@@ -959,7 +942,6 @@ class HTTPConnection:
except TypeError, te:
# If this is a file-like object, try to
# fstat its file descriptor
- import os
try:
thelen = str(os.fstat(body.fileno()).st_size)
except (AttributeError, OSError):
@@ -970,7 +952,7 @@ class HTTPConnection:
self.putheader('Content-Length', thelen)
def _send_request(self, method, url, body, headers):
- # honour explicitly requested Host: and Accept-Encoding headers
+ # Honor explicitly requested Host: and Accept-Encoding: headers.
header_names = dict.fromkeys([k.lower() for k in headers])
skips = {}
if 'host' in header_names: