- Contunue gatway support implementation.

This commit is contained in:
2025-08-24 12:47:58 +02:00
parent 67f1ec7de8
commit 5fb45c3944
3 changed files with 77 additions and 58 deletions

View File

@@ -263,6 +263,7 @@ network_ip_route_tab_dump()
network_dst_tab_load()
{
ndtl_id=0
vpn_id=0
log_trace "Network" "Loading Dst tab..."
@@ -289,45 +290,57 @@ network_dst_tab_load()
tab_assign NETWORK_DST_TAB "${ndtl_id},Table" "${ndtl_table}"
var_assign NETWORK_TABLE_LIST "${ndtl_table}" INC
tab_assign NETWORK_DST_TAB "${ndtl_id},Status" "$( ip link show dev ${ndtl_device} 2>/dev/null | grep -q ",UP," && echo 1 || echo 0)"
ndtl_host_name="vpn${ndtl_id}.${NETWORK_DST_NAME}"
ndtl_status="$( ip link show dev ${ndtl_device} 2>/dev/null | grep -q ",UP," && echo "1" || echo "0")"
tab_assign NETWORK_DST_TAB "${ndtl_id},Status" "${ndtl_status}"
if [[ "${ndtl_type}" == "1" ]]
then
ndtl_host_name=""
dns_value=""
else
ndtl_host_name="vpn${vpn_id}.${NETWORK_DST_NAME}"
dns_lookup "A" "${ndtl_host_name}" "NOCACHE"
vpn_id=$((${vpn_id} + 1))
fi
tab_assign NETWORK_DST_TAB "${ndtl_id},Host_Name" "${ndtl_host_name}"
dns_lookup "A" "${ndtl_host_name}" "NOCACHE"
tab_assign NETWORK_DST_TAB "${ndtl_id},IP" "${dns_value}"
case "${ndtl_type}"
in
"0")
set $(ip -s link show ${ndtl_device} 2>/dev/null ) &>/dev/null
ndtl_bytes_received="$( echo ${27} | numfmt --to=iec-i --suffix=B)"
ndtl_bytes_sent="$( echo ${40} | numfmt --to=iec-i --suffix=B)"
ndtl_uptime=""
;;
"1")
set $( echo "${NETWORK_OPENVPN_STATUS}" | grep ${ndtl_device}) &>/dev/null
"0"|"1")
ndtl_bytes_received="$( cat /sys/class/net/${ndtl_device}/statistics/rx_bytes 2>/dev/null | numfmt --to=iec-i --suffix=B)"
ndtl_bytes_sent="$( cat /sys/class/net/${ndtl_device}/statistics/tx_bytes 2>/dev/null | numfmt --to=iec-i --suffix=B)"
;;
"2")
set $( echo "${NETWORK_OPENVPN_STATUS}" | grep ${ndtl_device}'\.') &>/dev/null
# i=1; while [[ $i -lt 50 ]]; do eval "val=\${$i}"; echo "($i):[${val}]" 1>&2; i=$(( $i + 1)); done
ndtl_bytes_received="$( echo ${18/bytes,} | numfmt --to=iec-i --suffix=B)"
ndtl_bytes_sent="$( echo ${22/bytes,} | numfmt --to=iec-i --suffix=B)"
ndtl_start_date="$( grep "ext-client-${ndtl_device}.conf" /var/log/rx3-vpn.status 2>/dev/null | sed -e "s/.*Date: \[//" -e "s/\].*//")"
if [[ "${ndtl_start_date}" == "" ]]
then
ndtl_uptime=""
else
ndtl_uptime=$( echo "$(($(date +%s) - $(date -d "${ndtl_start_date}" +%s)))" | awk '{days = int($1/86400); print days " day" (( days > 1 ) ? "s" : "") strftime(" %H:%M:%S", $1,1)}')
fi
;;
esac
if [[ "${ndtl_status}" == "1" ]]
then
ndtl_start_date="$( stat -c %Z /sys/class/net/${ndtl_device})"
ndtl_uptime="$( echo $(( $(date +%s) - ${ndtl_start_date})) | awk '{days = int($1/86400); print days " day" (( days > 1 ) ? "s" : "") strftime(" %H:%M:%S", $1,1)}')"
else
ndtl_start_date=""
ndtl_uptime=""
fi
tab_assign NETWORK_DST_TAB "${ndtl_id},Bytes_Received" "${ndtl_bytes_received}"
tab_assign NETWORK_DST_TAB "${ndtl_id},Bytes_Sent" "${ndtl_bytes_sent}"
tab_assign NETWORK_DST_TAB "${ndtl_id},Start_Date" "${ndtl_start_date}"
tab_assign NETWORK_DST_TAB "${ndtl_id},Uptime" "${ndtl_uptime}"
tab_assign NETWORK_DST_NAME_IDX "${ndtl_name}" "${ndtl_id}"