From 1060378f42e40e19a7d30c560feb902a6f80bedd Mon Sep 17 00:00:00 2001 From: jim-p Date: Wed, 7 Dec 2016 13:55:39 -0500 Subject: [PATCH] Populate the HTTP_PROXY_AUTH env var. Ticket #6949 --- src/etc/inc/pkg-utils.inc | 4 ++++ src/etc/inc/services.inc | 4 ++++ src/etc/skel/dot.shrc | 6 ++++++ src/etc/skel/dot.tcshrc | 8 ++++++++ 4 files changed, 22 insertions(+) diff --git a/src/etc/inc/pkg-utils.inc b/src/etc/inc/pkg-utils.inc index 4ab9c4cd9b..ea61beb0a1 100644 --- a/src/etc/inc/pkg-utils.inc +++ b/src/etc/inc/pkg-utils.inc @@ -91,6 +91,10 @@ function pkg_env($extra_env = array()) { $http_proxy .= ':' . $config['system']['proxyport']; } $pkg_env_vars['HTTP_PROXY'] = $http_proxy; + + if (!empty($config['system']['proxyuser']) && !empty($config['system']['proxypass'])) { + $pkg_env_vars['HTTP_PROXY_AUTH'] = "basic:*:{$config['system']['proxyuser']}:{$config['system']['proxypass']}"; + } } if (isset($config['system']['use_mfs_tmpvar'])) { diff --git a/src/etc/inc/services.inc b/src/etc/inc/services.inc index b70792a3be..cfda822e85 100644 --- a/src/etc/inc/services.inc +++ b/src/etc/inc/services.inc @@ -2683,6 +2683,10 @@ function configure_cron() { $http_proxy .= ':' . $config['system']['proxyport']; } $crontab_contents .= "HTTP_PROXY={$http_proxy}"; + + if (!empty($config['system']['proxyuser']) && !empty($config['system']['proxypass'])) { + $crontab_contents .= "HTTP_PROXY_AUTH=basic:*:{$config['system']['proxyuser']}:{$config['system']['proxypass']}"; + } } foreach ($config['cron']['item'] as $item) { diff --git a/src/etc/skel/dot.shrc b/src/etc/skel/dot.shrc index 3c9dc9433e..e72197bfd8 100644 --- a/src/etc/skel/dot.shrc +++ b/src/etc/skel/dot.shrc @@ -25,6 +25,12 @@ if [ "${HTTP_PROXY}" != "" ]; then fi export HTTP_PROXY fi +HTTP_PROXY_AUTH_USER=`/usr/local/sbin/read_xml_tag.sh string system/proxyuser` +HTTP_PROXY_AUTH_PASS=`/usr/local/sbin/read_xml_tag.sh string system/proxypass` +if [ "${HTTP_PROXY_AUTH_USER}" != "" ] && [ "${HTTP_PROXY_AUTH_PASS}" != "" ]; then + HTTP_PROXY_AUTH="basic:*:${HTTP_PROXY_AUTH_USER}:${HTTP_PROXY_AUTH_PASS}" + export HTTP_PROXY_AUTH +fi # Detect interactive logins and display the shell unset _interactive diff --git a/src/etc/skel/dot.tcshrc b/src/etc/skel/dot.tcshrc index 00e092373f..db9846ff96 100644 --- a/src/etc/skel/dot.tcshrc +++ b/src/etc/skel/dot.tcshrc @@ -47,3 +47,11 @@ if (${http_proxy} != "") then endif setenv HTTP_PROXY ${http_proxy} endif + +set http_proxy_auth_user=`/usr/local/sbin/read_xml_tag.sh string system/proxyuser` +set http_proxy_auth_pass=`/usr/local/sbin/read_xml_tag.sh string system/proxypass` + +if ( ${http_proxy_auth_user} != "" && ${http_proxy_auth_pass} != "" ) then + set http_proxy_auth="basic:*:${http_proxy_auth_user}:${http_proxy_auth_pass}" + setenv HTTP_PROXY_AUTH "${http_proxy_auth}" +endif