- Complete the first gateway support implementation,
- More tests needed!
This commit is contained in:
@@ -297,7 +297,7 @@ network_dst_tab_load()
|
||||
tab_assign NETWORK_DST_TAB "${ndtl_id},Status" "${ndtl_status}"
|
||||
|
||||
|
||||
if [[ "${ndtl_type}" == "1" ]]
|
||||
if [[ "${ndtl_type}" == "5" ]]
|
||||
then
|
||||
ndtl_host_name=""
|
||||
dns_value=""
|
||||
@@ -453,6 +453,55 @@ network_dst_tab_dev_lookup()
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
# network_dst_ip_update
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
network_dst_ip_update()
|
||||
{
|
||||
local dst_ip_new="$1"
|
||||
|
||||
|
||||
if [[ "${dst_ip}" != "${dst_ip_new}" ]]
|
||||
then
|
||||
log_info "Network" "Update ${dst_host_name}: Old: [${dst_ip}] New: [${dst_ip_new}]"
|
||||
|
||||
${DEBUG} /usr/local/sbin/ip_host_update "${dst_host_name/.*}" "${dst_host_name#*.}" "${dst_ip_new}" 60
|
||||
tab_assign NETWORK_DST_TAB "${dst_id},IP" "${dst_ip_new}"
|
||||
else
|
||||
log_trace "Network" "Skiping ${dst_host_name}: IP: [${dst_ip}]"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
# network_dst_name_ip_update
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
network_dst_name_ip_update()
|
||||
{
|
||||
local dst_name="$1"
|
||||
local dst_ip_new="$2"
|
||||
|
||||
|
||||
network_dst_tab_name_lookup "${job_name}"
|
||||
|
||||
if [[ "${dst_id}" != "" ]]
|
||||
then
|
||||
network_dst_tab_get "${dst_id}"
|
||||
network_dst_ip_update "${dst_ip_new}"
|
||||
else
|
||||
log_error "Network: dst name not found: [${dst_name}]"
|
||||
fi
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
# network_src_tab_load
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
@@ -519,12 +568,15 @@ network_src_tab_load()
|
||||
;;
|
||||
|
||||
"2") # OpenVPN
|
||||
nstl_device="tun0"
|
||||
nstl_status_line="$( echo "${NETWORK_OPENVPN_STATUS}" | grep "${nstl_device}.log: CLIENT_LIST.*${nstl_ip},")"
|
||||
# nstl_device="tun0"
|
||||
# nstl_status_line="$( echo "${NETWORK_OPENVPN_STATUS}" | grep "${nstl_device}.status: CLIENT_LIST.*${nstl_ip},")"
|
||||
|
||||
nstl_status_line="$( echo "${NETWORK_OPENVPN_STATUS}" | grep "CLIENT_LIST,.*${nstl_ip},")"
|
||||
|
||||
if [[ "${nstl_status_line}" == "" ]]
|
||||
then
|
||||
nstl_status="0"
|
||||
nstl_device=""
|
||||
nstl_status="0"
|
||||
nstl_bytes_received=""
|
||||
nstl_bytes_sent=""
|
||||
nstl_start_date=""
|
||||
@@ -537,7 +589,8 @@ network_src_tab_load()
|
||||
IFS=,
|
||||
set ${nstl_status_line} &>/dev/null
|
||||
unset IFS
|
||||
|
||||
|
||||
nstl_device="$( echo $1 | sed -e "s%.*/%%" -e 's/.status.*//')"
|
||||
nstl_bytes_received=$( echo ${6} | numfmt --to=iec-i --suffix=B)
|
||||
nstl_bytes_sent=$( echo ${7} | numfmt --to=iec-i --suffix=B)
|
||||
nstl_start_date=${8}
|
||||
@@ -879,36 +932,55 @@ network_table_set()
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
# network_dst_address_init_all
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
network_dst_address_init_all()
|
||||
{
|
||||
for dst_id in ${NETWORK_DST_ID_LIST}
|
||||
do
|
||||
network_dst_tab_get "${dst_id}"
|
||||
network_dst_ip_update "0.0.0.0"
|
||||
done
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
# network_dst_address_refresh
|
||||
#--------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
network_dst_address_refresh()
|
||||
{
|
||||
local dst_id="$1"
|
||||
local dst_host_name="$2"
|
||||
local dst_ip_old="$3"
|
||||
local dst_id="$1"
|
||||
|
||||
local dst_ip_new
|
||||
local proxy_host="proxy${dst_id}.${NETWORK_DST_PROXY_NAME}"
|
||||
local proxy_port=8080
|
||||
local dst_ip_new
|
||||
local proxy_host
|
||||
local proxy_port=8080
|
||||
|
||||
|
||||
dst_ip_new=$( nc -w ${NETWORK_NC_TIMEOUT} ${proxy_host} ${proxy_port})
|
||||
network_dst_tab_get "${dst_id}"
|
||||
|
||||
if is_valid_ip ${dst_ip_new}
|
||||
if [[ ( "${dst_host_name}" != "" ) ]]
|
||||
then
|
||||
if [[ "${dst_ip_old}" != "${dst_ip_new}" ]]
|
||||
then
|
||||
log_info "Network" "Update ${dst_host_name}: Old: [${dst_ip_old}] New: [${dst_ip_new}]"
|
||||
${DEBUG} /usr/local/sbin/ip_host_update "${dst_host_name/.*}" "${dst_host_name#*.}" "${dst_ip_new}" 60
|
||||
if [[ ${dst_host_name} =~ ([0-9]+) ]]
|
||||
then
|
||||
proxy_host="proxy${BASH_REMATCH[1]}.${NETWORK_DST_PROXY_NAME}"
|
||||
|
||||
tab_assign NETWORK_DST_TAB "${dst_id},IP" "${dst_ip_new}"
|
||||
else
|
||||
log_trace "Network" "Skiping ${dst_host_name}: IP: [${dst_ip_old}]"
|
||||
fi
|
||||
else
|
||||
log_info "Network" "Skiping ${dst_host_name}: Invalid IP: [${dst_ip_new}] Old IP: [${dst_ip_old}]"
|
||||
dst_ip_new="$( nc -w ${NETWORK_NC_TIMEOUT} ${proxy_host} ${proxy_port} 2>/dev/null)"
|
||||
|
||||
if is_valid_ip "${dst_ip_new}"
|
||||
then
|
||||
network_dst_ip_update "${dst_ip_new}"
|
||||
else
|
||||
log_info "Network" "Skiping: [${dst_host_name}]: Invalid IP: [${dst_ip_new}]"
|
||||
fi
|
||||
else
|
||||
log_info "Network" "Skiping: dst_id: [${dst_id}]: Invalid host_name: [${dst_host_name}]"
|
||||
fi
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -924,8 +996,7 @@ network_dst_address_refresh_all()
|
||||
{
|
||||
for dst_id in ${NETWORK_DST_ID_LIST}
|
||||
do
|
||||
network_dst_tab_get ${dst_id}
|
||||
network_dst_address_refresh ${dst_id} ${dst_host_name} ${dst_ip}
|
||||
network_dst_address_refresh "${dst_id}"
|
||||
done
|
||||
}
|
||||
|
||||
@@ -1267,6 +1338,8 @@ network_start()
|
||||
|
||||
network_forward_start
|
||||
|
||||
network_dst_address_init_all
|
||||
|
||||
log_info "Network" "Network started!"
|
||||
}
|
||||
|
||||
|
||||
@@ -208,7 +208,7 @@ vpn_job_tab_init()
|
||||
|
||||
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},Cmd" "/usr/sbin/openvpn --config ${config_file} --daemon"
|
||||
tab_assign VPN_JOB_TAB "${job_id},Date" ""
|
||||
|
||||
tab_assign VPN_JOB_NAME_IDX "${dst_name}" "${job_id}"
|
||||
@@ -314,7 +314,8 @@ vpn_supervisor()
|
||||
for job_id in ${VPN_JOB_ID_LIST}
|
||||
do
|
||||
vpn_job_tab_get "${job_id}"
|
||||
|
||||
|
||||
|
||||
${DEBUG} kill -0 "${job_pid}" 2>/dev/null
|
||||
rc=$?
|
||||
|
||||
@@ -323,18 +324,20 @@ vpn_supervisor()
|
||||
log_info "VPN" "Restarting Cmd: [${job_cmd}]..."
|
||||
|
||||
eval ${DEBUG} ${job_cmd}
|
||||
|
||||
|
||||
job_pid="$( ps aux | grep "${job_cmd}" | grep -v grep | head -1 | awk '{print $2}')"
|
||||
|
||||
if [[ "${job_pid}" == "" ]]
|
||||
then
|
||||
job_pid=0
|
||||
fi
|
||||
|
||||
|
||||
tab_assign VPN_JOB_TAB "${job_id},PId" "${job_pid}"
|
||||
tab_assign VPN_JOB_TAB "${job_id},Date" "$(date --rfc-3339=seconds -u)"
|
||||
|
||||
|
||||
log_info "VPN" "PId: [${VPN_JOB_TAB["${job_id},PId"]}]!"
|
||||
|
||||
network_dst_name_ip_update "${job_name}" "0.0.0.0"
|
||||
fi
|
||||
done
|
||||
|
||||
|
||||
Reference in New Issue
Block a user