diff options
author | Evan Prodromou <evan@status.net> | 2010-08-13 14:33:41 -0700 |
---|---|---|
committer | Evan Prodromou <evan@status.net> | 2010-08-13 14:33:41 -0700 |
commit | 718317542940a8976f2c6f2a9ea09a04f2f00ca6 (patch) | |
tree | 2bae1e1b0ce628101453b83c7e4ddcce59b43c62 /lib/httpclient.php | |
parent | 9f0715a9935966f3ec483bccc476d5baf3324b3c (diff) | |
parent | 029aa0c61c9942c0688fd3dc9aa2893311543db1 (diff) |
Merge branch 'master' into 1.0.x
Diffstat (limited to 'lib/httpclient.php')
-rw-r--r-- | lib/httpclient.php | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/httpclient.php b/lib/httpclient.php index b69f718e5..514a5afeb 100644 --- a/lib/httpclient.php +++ b/lib/httpclient.php @@ -145,6 +145,10 @@ class HTTPClient extends HTTP_Request2 $this->config['ssl_verify_peer'] = false; } + if (common_config('http', 'curl') && extension_loaded('curl')) { + $this->config['adapter'] = 'HTTP_Request2_Adapter_Curl'; + } + parent::__construct($url, $method, $config); $this->setHeader('User-Agent', $this->userAgent()); } @@ -204,6 +208,15 @@ class HTTPClient extends HTTP_Request2 protected function doRequest($url, $method, $headers) { $this->setUrl($url); + + // Workaround for HTTP_Request2 not setting up SNI in socket contexts; + // This fixes cert validation for SSL virtual hosts using SNI. + // Requires PHP 5.3.2 or later and OpenSSL with SNI support. + if ($this->url->getScheme() == 'https' && defined('OPENSSL_TLSEXT_SERVER_NAME')) { + $this->config['ssl_SNI_enabled'] = true; + $this->config['ssl_SNI_server_name'] = $this->url->getHost(); + } + $this->setMethod($method); if ($headers) { foreach ($headers as $header) { |