diff options
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica/Transport/Http.php')
-rw-r--r-- | vendor/ruflin/elastica/lib/Elastica/Transport/Http.php | 58 |
1 files changed, 30 insertions, 28 deletions
diff --git a/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php b/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php index 5606dbbc..1a33c0a6 100644 --- a/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php +++ b/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php @@ -1,5 +1,4 @@ <?php - namespace Elastica\Transport; use Elastica\Exception\Connection\HttpException; @@ -10,39 +9,39 @@ use Elastica\Request; use Elastica\Response; /** - * Elastica Http Transport object + * Elastica Http Transport object. * - * @category Xodoa - * @package Elastica * @author Nicolas Ruflin <spam@ruflin.com> */ class Http extends AbstractTransport { /** - * Http scheme + * Http scheme. * * @var string Http scheme */ protected $_scheme = 'http'; /** - * Curl resource to reuse + * Curl resource to reuse. * * @var resource Curl resource to reuse */ protected static $_curlConnection = null; /** - * Makes calls to the elasticsearch server + * Makes calls to the elasticsearch server. * * All calls that are made to the server are done through this function * - * @param \Elastica\Request $request - * @param array $params Host, Port, ... + * @param \Elastica\Request $request + * @param array $params Host, Port, ... + * * @throws \Elastica\Exception\ConnectionException * @throws \Elastica\Exception\ResponseException * @throws \Elastica\Exception\Connection\HttpException - * @return \Elastica\Response Response object + * + * @return \Elastica\Response Response object */ public function exec(Request $request, array $params) { @@ -56,7 +55,7 @@ class Http extends AbstractTransport if (!empty($url)) { $baseUri = $url; } else { - $baseUri = $this->_scheme . '://' . $connection->getHost() . ':' . $connection->getPort() . '/' . $connection->getPath(); + $baseUri = $this->_scheme.'://'.$connection->getHost().':'.$connection->getPort().'/'.$connection->getPath(); } $baseUri .= $request->getPath(); @@ -64,14 +63,26 @@ class Http extends AbstractTransport $query = $request->getQuery(); if (!empty($query)) { - $baseUri .= '?' . http_build_query($query); + $baseUri .= '?'.http_build_query($query); } curl_setopt($conn, CURLOPT_URL, $baseUri); curl_setopt($conn, CURLOPT_TIMEOUT, $connection->getTimeout()); curl_setopt($conn, CURLOPT_FORBID_REUSE, 0); + /* @see Connection::setConnectTimeout() */ + $connectTimeout = $connection->getConnectTimeout(); + if ($connectTimeout > 0) { + curl_setopt($conn, CURLOPT_CONNECTTIMEOUT, $connectTimeout); + } + $proxy = $connection->getProxy(); + + // See: https://github.com/facebook/hhvm/issues/4875 + if (is_null($proxy) && defined('HHVM_VERSION')) { + $proxy = getenv('http_proxy') ?: null; + } + if (!is_null($proxy)) { curl_setopt($conn, CURLOPT_PROXY, $proxy); } @@ -83,7 +94,7 @@ class Http extends AbstractTransport if (!empty($headersConfig)) { $headers = array(); while (list($header, $headerValue) = each($headersConfig)) { - array_push($headers, $header . ': ' . $headerValue); + array_push($headers, $header.': '.$headerValue); } curl_setopt($conn, CURLOPT_HTTPHEADER, $headers); @@ -116,11 +127,6 @@ class Http extends AbstractTransport curl_setopt($conn, CURLOPT_CUSTOMREQUEST, $httpMethod); - if (defined('DEBUG') && DEBUG) { - // Track request headers when in debug mode - curl_setopt($conn, CURLINFO_HEADER_OUT, true); - } - $start = microtime(true); // cURL opt returntransfer leaks memory, therefore OB instead. @@ -133,15 +139,10 @@ class Http extends AbstractTransport // Checks if error exists $errorNumber = curl_errno($conn); - $response = new Response($responseString, curl_getinfo($this->_getConnection(), CURLINFO_HTTP_CODE)); - - if (defined('DEBUG') && DEBUG) { - $response->setQueryTime($end - $start); - } - + $response = new Response($responseString, curl_getinfo($conn, CURLINFO_HTTP_CODE)); + $response->setQueryTime($end - $start); $response->setTransferInfo(curl_getinfo($conn)); - if ($response->hasError()) { throw new ResponseException($request, $response); } @@ -158,7 +159,7 @@ class Http extends AbstractTransport } /** - * Called to add additional curl params + * Called to add additional curl params. * * @param resource $curlConnection Curl connection */ @@ -172,9 +173,10 @@ class Http extends AbstractTransport } /** - * Return Curl resource + * Return Curl resource. + * + * @param bool $persistent False if not persistent connection * - * @param bool $persistent False if not persistent connection * @return resource Connection resource */ protected function _getConnection($persistent = true) |