feature #295, proxy support for fetchRemote

This commit is contained in:
plegall 2016-02-15 15:02:16 +01:00
parent e03dff12b1
commit a9a17a27cb
2 changed files with 27 additions and 0 deletions

View file

@ -2076,6 +2076,8 @@ function cat_admin_access($category_id)
*/
function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_agent='Piwigo', $step=0)
{
global $conf;
// Try to retrieve data from local file?
if (!url_is_remote($src))
{
@ -2111,6 +2113,17 @@ function fetchRemote($src, &$dest, $get_data=array(), $post_data=array(), $user_
if (function_exists('curl_init') && function_exists('curl_exec'))
{
$ch = @curl_init();
if (isset($conf['use_proxy']) && $conf['use_proxy'])
{
@curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
@curl_setopt($ch, CURLOPT_PROXY, $conf['proxy_server']);
if (isset($conf['proxy_auth']) && !empty($conf['proxy_auth']))
{
@curl_setopt($ch, CURLOPT_PROXYUSERPWD, $conf['proxy_auth']);
}
}
@curl_setopt($ch, CURLOPT_URL, $src);
@curl_setopt($ch, CURLOPT_HEADER, 1);
@curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);

View file

@ -832,4 +832,18 @@ $conf['log_level'] = 'DEBUG';
// Keep logs file during X days
$conf['log_archive_days'] = 30;
// +-----------------------------------------------------------------------+
// | Proxy Settings |
// +-----------------------------------------------------------------------+
// If piwigo needs a http-proxy to connect to the internet, set this to true
$conf['use_proxy'] = false;
// Connection string of the proxy
$conf['proxy_server'] = 'proxy.domain.org:port';
// If the http-proxy requires authentication, set username and password here
// e.g. username:password
$conf['proxy_auth'] = '';
?>