]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Use a lambda instead of functools.partial for pycurl.HEADERFUNCTION.
authorBen Darnell <bdarnell@beaker.local>
Mon, 17 May 2010 02:33:59 +0000 (19:33 -0700)
committerBen Darnell <bdarnell@beaker.local>
Mon, 17 May 2010 02:35:06 +0000 (19:35 -0700)
Older versions of pycurl (including 7.16.2.1, which is the recommended
version for Mac OS X 10.5) only work with real functions, not objects
with a __call__ method like functools.partial.

Remove exception-swallowing - curl versions that predate HEADERFUNCTION
are no longer supported.

tornado/httpclient.py

index 76e18bb5b566d1e67b5f1d5c1f2fc145645b20a3..e45bfd66e287e0a3c06d9da124777251dccb3522 100644 (file)
@@ -358,15 +358,11 @@ def _curl_setup_request(curl, request, buffer, headers):
     curl.setopt(pycurl.URL, request.url)
     curl.setopt(pycurl.HTTPHEADER,
                 ["%s: %s" % i for i in request.headers.iteritems()])
-    try:
-        if request.header_callback:
-            curl.setopt(pycurl.HEADERFUNCTION, request.header_callback)
-        else:
-            curl.setopt(pycurl.HEADERFUNCTION,
-                        functools.partial(_curl_header_callback, headers))
-    except:
-        # Old version of curl; response will not include headers
-        pass
+    if request.header_callback:
+        curl.setopt(pycurl.HEADERFUNCTION, request.header_callback)
+    else:
+        curl.setopt(pycurl.HEADERFUNCTION,
+                    lambda line: _curl_header_callback(headers, line))
     if request.streaming_callback:
         curl.setopt(pycurl.WRITEFUNCTION, request.streaming_callback)
     else: