summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/Core/HttpClient.php22
-rw-r--r--app/constants.php7
2 files changed, 25 insertions, 4 deletions
diff --git a/app/Core/HttpClient.php b/app/Core/HttpClient.php
index b808f756..99534cfe 100644
--- a/app/Core/HttpClient.php
+++ b/app/Core/HttpClient.php
@@ -99,9 +99,18 @@ class HttpClient extends Base
return '';
}
- $headers = array_merge(array('User-Agent: '.self::HTTP_USER_AGENT, 'Connection: close'), $headers);
+ $default_headers = array(
+ 'User-Agent: '.self::HTTP_USER_AGENT,
+ 'Connection: close',
+ );
+
+ if (HTTP_PROXY_USERNAME) {
+ $default_headers[] = 'Proxy-Authorization: Basic '.base64_encode(HTTP_PROXY_USERNAME.':'.HTTP_PROXY_PASSWORD);
+ }
+
+ $headers = array_merge($default_headers, $headers);
- $context = stream_context_create(array(
+ $context = array(
'http' => array(
'method' => $method,
'protocol_version' => 1.1,
@@ -110,9 +119,14 @@ class HttpClient extends Base
'header' => implode("\r\n", $headers),
'content' => $content
)
- ));
+ );
+
+ if (HTTP_PROXY_HOSTNAME) {
+ $context['http']['proxy'] = 'tcp://'.HTTP_PROXY_HOSTNAME.':'.HTTP_PROXY_PORT;
+ $context['http']['request_fulluri'] = true;
+ }
- $stream = @fopen(trim($url), 'r', false, $context);
+ $stream = @fopen(trim($url), 'r', false, stream_context_create($context));
$response = '';
if (is_resource($stream)) {
diff --git a/app/constants.php b/app/constants.php
index f54930ab..0d8ffd87 100644
--- a/app/constants.php
+++ b/app/constants.php
@@ -120,3 +120,10 @@ defined('BRUTEFORCE_LOCKDOWN_DURATION') or define('BRUTEFORCE_LOCKDOWN_DURATION'
// Session duration in second (0 = until the browser is closed)
// See http://php.net/manual/en/session.configuration.php#ini.session.cookie-lifetime
defined('SESSION_DURATION') or define('SESSION_DURATION', 0);
+
+// HTTP client proxy
+defined('HTTP_PROXY_HOSTNAME') or define('HTTP_PROXY_HOSTNAME', '');
+defined('HTTP_PROXY_PORT') or define('HTTP_PROXY_PORT', '3128');
+defined('HTTP_PROXY_USERNAME') or define('HTTP_PROXY_USERNAME', '');
+defined('HTTP_PROXY_PASSWORD') or define('HTTP_PROXY_PASSWORD', '');
+