mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-18 02:31:29 +00:00
Add proper support for proxies
There are situations where you want tt-rss to use a proxy (e.g. because of network restrictions, or privacy concerns). tt-rss already comes with an undocumented `_CURL_HTTP_PROXY` variable (see eg https://binfalse.de/2015/05/06/ttrss-with-proxy/), however that won't have an effect when, for example, php-curl is not installed, seec30f5e1811/include/functions.php (L377)In this case it would use the `file_get_contents` with a stream context without a proxy definition:c30f5e1811/include/functions.php (L487)Here I propose to properly support proxies, and I introduced a `PROXY` variable, that is respected in both scenarios, with and without curl installed.
This commit is contained in:
@@ -402,8 +402,8 @@
|
||||
curl_setopt($ch, CURLOPT_COOKIEJAR, "/dev/null");
|
||||
}
|
||||
|
||||
if (defined('_CURL_HTTP_PROXY')) {
|
||||
curl_setopt($ch, CURLOPT_PROXY, _CURL_HTTP_PROXY);
|
||||
if (defined('PROXY')) {
|
||||
curl_setopt($ch, CURLOPT_PROXY, PROXY);
|
||||
}
|
||||
|
||||
if ($post_query) {
|
||||
@@ -483,25 +483,24 @@
|
||||
|
||||
// TODO: should this support POST requests or not? idk
|
||||
|
||||
$context_options = array(
|
||||
'http' => array(
|
||||
'method' => 'GET',
|
||||
'ignore_errors' => true,
|
||||
'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
|
||||
'protocol_version'=> 1.1)
|
||||
);
|
||||
|
||||
if (!$post_query && $last_modified) {
|
||||
$context = stream_context_create(array(
|
||||
'http' => array(
|
||||
'method' => 'GET',
|
||||
'ignore_errors' => true,
|
||||
'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
|
||||
'protocol_version'=> 1.1,
|
||||
'header' => "If-Modified-Since: $last_modified\r\n")
|
||||
));
|
||||
} else {
|
||||
$context = stream_context_create(array(
|
||||
'http' => array(
|
||||
'method' => 'GET',
|
||||
'ignore_errors' => true,
|
||||
'timeout' => $timeout ? $timeout : FILE_FETCH_TIMEOUT,
|
||||
'protocol_version'=> 1.1
|
||||
)));
|
||||
$context_options['http']['header'] = "If-Modified-Since: $last_modified\r\n";
|
||||
}
|
||||
|
||||
if (defined('PROXY')) {
|
||||
$context_options['http']['proxy'] = PROXY;
|
||||
}
|
||||
|
||||
$context = stream_context_create($context_options);
|
||||
|
||||
$old_error = error_get_last();
|
||||
|
||||
$data = @file_get_contents($url, false, $context);
|
||||
|
||||
Reference in New Issue
Block a user