Move curl Expect: header hack from httpclient.py to curl_httpclient.py.
Fixes: #233.
This commit is contained in:
parent
6f0a8a752d
commit
425f069e9d
|
@ -287,6 +287,18 @@ def _curl_setup_request(curl, request, buffer, headers):
|
||||||
else:
|
else:
|
||||||
curl.setopt(pycurl.HTTPHEADER,
|
curl.setopt(pycurl.HTTPHEADER,
|
||||||
[utf8("%s: %s" % i) for i in request.headers.iteritems()])
|
[utf8("%s: %s" % i) for i in request.headers.iteritems()])
|
||||||
|
|
||||||
|
# libcurl's magic "Expect: 100-continue" behavior causes delays
|
||||||
|
# with servers that don't support it (which include, among others,
|
||||||
|
# Google's OpenID endpoint). Additionally, this behavior has
|
||||||
|
# a bug in conjunction with the curl_multi_socket_action API
|
||||||
|
# (https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3039744&group_id=976),
|
||||||
|
# which increases the delays. It's more trouble than it's worth,
|
||||||
|
# so just turn off the feature (yes, setting Expect: to an empty
|
||||||
|
# value is the official way to disable this)
|
||||||
|
if "Expect" not in request.headers:
|
||||||
|
curl.setopt(pycurl.HTTPHEADER, utf8("Expect: "))
|
||||||
|
|
||||||
if request.header_callback:
|
if request.header_callback:
|
||||||
curl.setopt(pycurl.HEADERFUNCTION, request.header_callback)
|
curl.setopt(pycurl.HEADERFUNCTION, request.header_callback)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -169,16 +169,6 @@ class HTTPRequest(object):
|
||||||
self.proxy_port = proxy_port
|
self.proxy_port = proxy_port
|
||||||
self.proxy_username = proxy_username
|
self.proxy_username = proxy_username
|
||||||
self.proxy_password = proxy_password
|
self.proxy_password = proxy_password
|
||||||
# libcurl's magic "Expect: 100-continue" behavior causes delays
|
|
||||||
# with servers that don't support it (which include, among others,
|
|
||||||
# Google's OpenID endpoint). Additionally, this behavior has
|
|
||||||
# a bug in conjunction with the curl_multi_socket_action API
|
|
||||||
# (https://sourceforge.net/tracker/?func=detail&atid=100976&aid=3039744&group_id=976),
|
|
||||||
# which increases the delays. It's more trouble than it's worth,
|
|
||||||
# so just turn off the feature (yes, setting Expect: to an empty
|
|
||||||
# value is the official way to disable this)
|
|
||||||
if "Expect" not in headers:
|
|
||||||
headers["Expect"] = ""
|
|
||||||
self.url = utf8(url)
|
self.url = utf8(url)
|
||||||
self.method = method
|
self.method = method
|
||||||
self.headers = headers
|
self.headers = headers
|
||||||
|
|
Loading…
Reference in New Issue