summaryrefslogtreecommitdiff
path: root/vendor/ruflin/elastica/lib/Elastica/Transport/Http.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/ruflin/elastica/lib/Elastica/Transport/Http.php')
-rw-r--r--vendor/ruflin/elastica/lib/Elastica/Transport/Http.php58
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)