From 2f279bc56e57f2c90030706189f0a4e5ee21a975 Mon Sep 17 00:00:00 2001 From: ljm42 Date: Mon, 1 Apr 2024 11:32:46 -0700 Subject: [PATCH] Proxy via local_prepend.php --- .../plugins/dynamix/include/local_prepend.php | 4 +++ sbin/set_proxy | 29 +++++++++++++------ 2 files changed, 24 insertions(+), 9 deletions(-) diff --git a/emhttp/plugins/dynamix/include/local_prepend.php b/emhttp/plugins/dynamix/include/local_prepend.php index c683c1b87..a9c0d38b9 100644 --- a/emhttp/plugins/dynamix/include/local_prepend.php +++ b/emhttp/plugins/dynamix/include/local_prepend.php @@ -39,4 +39,8 @@ if ($_SERVER['SCRIPT_NAME'] != '/login.php' && $_SERVER['SCRIPT_NAME'] != '/auth if ($var['csrf_token'] != $_POST['csrf_token']) csrf_terminate("wrong"); unset($_POST['csrf_token']); } +$proxy_cfg = (array)@parse_ini_file('/var/local/emhttp/proxy.ini',true); +putenv('http_proxy='.((array_key_exists('http_proxy', $proxy_cfg)) ? $proxy_cfg['http_proxy'] : '')); +putenv('https_proxy='.((array_key_exists('https_proxy', $proxy_cfg)) ? $proxy_cfg['https_proxy'] : '')); +putenv('no_proxy='.((array_key_exists('http_proxy', $proxy_cfg)) ? $proxy_cfg['no_proxy'] : '')); ?> diff --git a/sbin/set_proxy b/sbin/set_proxy index 73559ac10..b50cdc938 100755 --- a/sbin/set_proxy +++ b/sbin/set_proxy @@ -11,6 +11,7 @@ CFG=/boot/config/proxy.cfg # these files are generated by this script based on the data in proxy.cfg PROXY_SH=/etc/profile.d/proxy.sh +PROXY_INI=/usr/local/emhttp/state/proxy.ini # random file extension for atomic writes RND=$RANDOM @@ -53,19 +54,29 @@ EOF mv "${FILE}.${RND}" "${FILE}" } -# if running, restart_phpfpm when the environment variables change -restart_phpfpm () { - if /etc/rc.d/rc.php-fpm status > /dev/null; then - /etc/rc.d/rc.php-fpm restart > /dev/null - fi +set_proxy_ini() { + local FILE + FILE="${PROXY_INI}" + cat <"${FILE}.${RND}" +http_proxy="${proxy_url}" +https_proxy="${proxy_url}" +no_proxy="${no_proxy}" +EOF + chmod 644 "${FILE}.${RND}" + mv "${FILE}.${RND}" "${FILE}" +} + +# clear /usr/local/emhttp/state/proxy.ini +unset_proxy_ini() { + # vars are empty now, call set_proxy_ini to add empty vars to proxy.ini + set_proxy_ini } # generate proxy files add_proxy_to_generated_files_and_exit() { echo "generating proxy files" set_proxy_sh - . "${PROXY_SH}" - restart_phpfpm + set_proxy_ini [[ -n "${VERBOSE}" ]] && display_generated_files exit 0 } @@ -74,8 +85,7 @@ add_proxy_to_generated_files_and_exit() { remove_proxy_from_generated_files_and_exit() { echo "removing proxy info from generated files" unset_proxy_sh - . "${PROXY_SH}" - restart_phpfpm + unset_proxy_ini [[ -n "${VERBOSE}" ]] && display_generated_files exit 0 } @@ -84,6 +94,7 @@ remove_proxy_from_generated_files_and_exit() { display_generated_files() { echo display_generated_file "${PROXY_SH}" + display_generated_file "${PROXY_INI}" } # when verbose mode enabled