]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Merge pull request #1116 from homm/curl-put-redirects
authorBen Darnell <ben@bendarnell.com>
Thu, 17 Jul 2014 00:16:38 +0000 (20:16 -0400)
committerBen Darnell <ben@bendarnell.com>
Thu, 17 Jul 2014 00:16:38 +0000 (20:16 -0400)
make IOCMD_RESTARTREAD available for PUT requests

1  2 
tornado/curl_httpclient.py

index 53181885141f05e72a5f367030be7b64c321efff,a46ce4055151639170badc2cd0e2c1ed87f54565..a0973233071278e2fede303232dabbf13126e881
@@@ -387,18 -404,13 +387,18 @@@ def _curl_setup_request(curl, request, 
  
      # Handle curl's cryptic options for every individual HTTP method
      if request.method in ("POST", "PUT"):
 +        if request.body is None:
 +            raise AssertionError(
 +                'Body must not be empty for "%s" request'
 +                % request.method)
 +
          request_buffer = BytesIO(utf8(request.body))
+         def ioctl(cmd):
+             if cmd == curl.IOCMD_RESTARTREAD:
+                 request_buffer.seek(0)
          curl.setopt(pycurl.READFUNCTION, request_buffer.read)
+         curl.setopt(pycurl.IOCTLFUNCTION, ioctl)
          if request.method == "POST":
-             def ioctl(cmd):
-                 if cmd == curl.IOCMD_RESTARTREAD:
-                     request_buffer.seek(0)
-             curl.setopt(pycurl.IOCTLFUNCTION, ioctl)
              curl.setopt(pycurl.POSTFIELDSIZE, len(request.body))
          else:
              curl.setopt(pycurl.INFILESIZE, len(request.body))