Implement client_key and client_cert support in curl_httpclient.
+ will push the changes upstream when we've exercised them more.
diff --git a/tornado/curl_httpclient.py b/tornado/curl_httpclient.py
index a338cb8..1a8312c 100644
--- a/tornado/curl_httpclient.py
+++ b/tornado/curl_httpclient.py
@@ -393,8 +393,11 @@
curl.unsetopt(pycurl.USERPWD)
logging.debug("%s %s", request.method, request.url)
- if request.client_key is not None or request.client_cert is not None:
- raise ValueError("Client certificate not supported with curl_httpclient")
+ if request.client_key is not None:
+ curl.setopt(pycurl.SSLKEY, request.client_key)
+ if request.client_cert is not None:
+ curl.setopt(pycurl.SSLCERT, request.client_cert)
+
if threading.activeCount() > 1:
# libcurl/pycurl is not thread-safe by default. When multiple threads