]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Fixes for soon-to-be-released py3-compatible version of pycurl.
authorBen Darnell <ben@bendarnell.com>
Sun, 29 Dec 2013 19:57:29 +0000 (14:57 -0500)
committerBen Darnell <ben@bendarnell.com>
Sun, 29 Dec 2013 19:57:29 +0000 (14:57 -0500)
tornado/curl_httpclient.py
tornado/test/curl_httpclient_test.py

index cb97710a0bd6fd60ad1a51c9aa6bb8d33a663640..0df7a7eea9bfc552ede11c77330270b3995de60b 100644 (file)
@@ -318,10 +318,12 @@ def _curl_setup_request(curl, request, buffer, headers):
                     [native_str("%s: %s" % i) for i in request.headers.items()])
 
     if request.header_callback:
-        curl.setopt(pycurl.HEADERFUNCTION, request.header_callback)
+        curl.setopt(pycurl.HEADERFUNCTION,
+                    lambda line: request.header_callback(native_str(line)))
     else:
         curl.setopt(pycurl.HEADERFUNCTION,
-                    lambda line: _curl_header_callback(headers, line))
+                    lambda line: _curl_header_callback(headers,
+                                                       native_str(line)))
     if request.streaming_callback:
         write_function = request.streaming_callback
     else:
index e9ba8a76ce64b9d08e12d26a69ff2aa7375f5cac..faf6cdc791a6c73b5073bf89f982669aa6c7eca5 100644 (file)
@@ -2,6 +2,7 @@ from __future__ import absolute_import, division, print_function, with_statement
 
 from hashlib import md5
 
+from tornado.escape import utf8
 from tornado.httpclient import HTTPRequest
 from tornado.stack_context import ExceptionStackContext
 from tornado.testing import AsyncHTTPTestCase
@@ -51,10 +52,10 @@ class DigestAuthHandler(RequestHandler):
             assert param_dict['nonce'] == nonce
             assert param_dict['username'] == username
             assert param_dict['uri'] == self.request.path
-            h1 = md5('%s:%s:%s' % (username, realm, password)).hexdigest()
-            h2 = md5('%s:%s' % (self.request.method,
-                                self.request.path)).hexdigest()
-            digest = md5('%s:%s:%s' % (h1, nonce, h2)).hexdigest()
+            h1 = md5(utf8('%s:%s:%s' % (username, realm, password))).hexdigest()
+            h2 = md5(utf8('%s:%s' % (self.request.method,
+                                     self.request.path))).hexdigest()
+            digest = md5(utf8('%s:%s:%s' % (h1, nonce, h2))).hexdigest()
             if digest == param_dict['response']:
                 self.write('ok')
             else: