diff --git a/usr/local/lib/vpn.bash b/usr/local/lib/vpn.bash index a4e9bda..4d1771b 100644 --- a/usr/local/lib/vpn.bash +++ b/usr/local/lib/vpn.bash @@ -1,4 +1,4 @@ -#!/bin/bash +#!/bin/bash -x if [[ "${VPN_BASH}" != "" ]] then @@ -23,6 +23,7 @@ fi declare -Ag VPN_JOB_TAB declare -Ag VPN_JOB_ID_LIST +declare -Ag VPN_JOB_NAME_IDX declare -g VPN_LOG_FILE="/var/log/network/rx3-vpn.log" declare -g VPN_PID_FILE="/var/lib/network/rx3-vpn.pid" @@ -75,7 +76,7 @@ vpn_job_tab_load() local job_date local job_cmd - + ${LOG} 1>&2 "Loading Job tab..." while IFS= read -r line @@ -87,17 +88,19 @@ vpn_job_tab_load() job_name="$1" job_pid="$2" - job_date="$4 $4" + job_date="$3 $4" shift; shift; shift; shift job_cmd="$*" - var_assign VPN_JOB_ID_LIST "${job_id}" INC + var_assign VPN_JOB_ID_LIST "${job_id}" INC - tab_assign VPN_JOB_TAB "${job_id},Name" "${job_name}" - tab_assign VPN_JOB_TAB "${job_id},PId" "${job_pid}" - tab_assign VPN_JOB_TAB "${job_id},Date" "${job_date}" - tab_assign VPN_JOB_TAB "${job_id},Cmd" "${job_cmd}" - + tab_assign VPN_JOB_TAB "${job_id},Name" "${job_name}" + tab_assign VPN_JOB_TAB "${job_id},PId" "${job_pid}" + tab_assign VPN_JOB_TAB "${job_id},Date" "${job_date}" + tab_assign VPN_JOB_TAB "${job_id},Cmd" "${job_cmd}" + + tab_assign VPN_JOB_NAME_IDX "${job_name}" "${job_id}" + job_id=$(( ${job_id} + 1)) fi done <<< ${VPN_STATUS} @@ -184,13 +187,15 @@ vpn_job_tab_init() then config_file="${VPN_CONFIG_FILE/DEVICE/${dst_device}}" - var_assign VPN_JOB_ID_LIST "${job_id}" INC + var_assign VPN_JOB_ID_LIST "${job_id}" INC - tab_assign VPN_JOB_TAB "${job_id},Name" "${dst_name}" - tab_assign VPN_JOB_TAB "${job_id},PId" "0" - tab_assign VPN_JOB_TAB "${job_id},Cmd" "/usr/sbin/openvpn --config ${config_file} --dev ${dst_device} --daemon" - tab_assign VPN_JOB_TAB "${job_id},Date" "" + tab_assign VPN_JOB_TAB "${job_id},Name" "${dst_name}" + tab_assign VPN_JOB_TAB "${job_id},PId" "0" + tab_assign VPN_JOB_TAB "${job_id},Cmd" "/usr/sbin/openvpn --config ${config_file} --dev ${dst_device} --daemon" + tab_assign VPN_JOB_TAB "${job_id},Date" "" + tab_assign VPN_JOB_NAME_IDX "${dst_name}" "${job_id}" + vpn_config_make "${config_file}" "${dst_device}" "${dst_config}" log_print "${VPN_LOG_FILE}" "${LOG}" "Loading config: Id: [${job_id}] Name: [${dst_name}] Cmd: [${VPN_JOB_TAB["${job_id},Cmd"]}]" @@ -247,6 +252,15 @@ vpn_job_tab_dump() echo "VPN_JOB_ID_LIST: [${VPN_JOB_ID_LIST}]" echo + echo "VPN_JOB_NAME_IDX:" + + for key in "${!VPN_JOB_NAME_IDX[@]}" + do + echo "[${key}]: [${VPN_JOB_NAME_IDX[${key}]}]" + done | sort -n + + echo + echo "VPN_JOB_TAB:" for key in "${!VPN_JOB_TAB[@]}" @@ -332,7 +346,7 @@ vpn_init() file_lock ${VPN_STATUS_LOCK} READ 9 file_dir_init ${VPN_STATUS_FILE} root apache file_unlock 9 - + file_dir_init ${VPN_LOG_FILE} root apache if [[ -s "${VPN_STATUS_FILE}" ]] @@ -458,13 +472,8 @@ vpn_status() echo "Daemon not running" fi - echo "Number of VPN Jobs: (${#VPN_JOB_IDX[@]})" + echo "Number of VPN Jobs: (${#VPN_JOB_NAME_IDX[@]})" -# if [ -f ${VPN_STATUS_FILE} ] -# then -# cat ${VPN_STATUS_FILE} -# fi - echo -e "Id | Name | Status | PId | Date | Command" echo "--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------"