- Add network reinit() function,

- Add reinit at each supervisor end loop,
- Fix address refresh algorithm,
- Fix log function parameter passing bug.
This commit is contained in:
2025-09-01 19:22:40 +02:00
parent b1c51d6cfd
commit fc549dfea0
4 changed files with 76 additions and 70 deletions

View File

@@ -361,7 +361,7 @@ log_print()
log_trace()
{
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "TRA" $*
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "TRA" "$@"
}
@@ -374,7 +374,7 @@ log_trace()
log_info()
{
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "INF" $*
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "INF" "$@"
}
@@ -387,7 +387,7 @@ log_info()
log_warning()
{
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "WRN" $*
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "WRN" "$@"
}
@@ -400,5 +400,5 @@ log_warning()
log_error()
{
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "ERR" $*
log_print "${LOG_FILE}" "${LOG_LOCK}" "${LOG_ECHO}" "ERR" "$@"
}

View File

@@ -291,6 +291,14 @@ dns_init()
dns_deinit()
{
:;
DNS_A_TAB=()
DNS_A_ID_LIST=""
DNS_PTR_TAB=()
DNS_PTR_ID_LIST=""
DNS_CACHE_UPDATED=0
# :;
}

View File

@@ -554,12 +554,12 @@ network_dst_ip_update()
if [[ "${dst_ip}" != "${dst_ip_new}" ]]
then
log_info "Network" "Update ${dst_host_name}: Old: [${dst_ip}] New: [${dst_ip_new}]"
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}]"
log_trace "Network" "Skiping [${dst_host_name}]: IP: [${dst_ip}]"
fi
}
@@ -584,7 +584,7 @@ network_dst_name_ip_update()
network_dst_tab_get "${dst_id}"
network_dst_ip_update "${dst_ip_new}"
else
log_error "Network: dst name not found: [${dst_name}]"
log_error "Network" "dst name not found: [${dst_name}]"
fi
}
@@ -1019,52 +1019,6 @@ network_device_deinit()
#--------------------------------------------------------------------------------------------------------------------------
# network_dst_init
#--------------------------------------------------------------------------------------------------------------------------
#
#network_device_name_init()
#{
# local dst_id="$1"
#
#
# if [[ "${dst_id}" != "" ]]
# then
# network_dst_tab_get "${dst_id}"
#
# network_route_dst_init "${dst_id}"
#
# network_route_rx3_init "${dst_device}"
#
# fi
#
# network_route_rx3_init "${target_device}"
#}
#--------------------------------------------------------------------------------------------------------------------------
# network_device_name_init
#--------------------------------------------------------------------------------------------------------------------------
#
#network_device_name_init()
#{
# local target_device="$1"
#
#
# network_dst_tab_dev_lookup ${target_device}
#
# if [[ "${dst_id}" != "" ]]
# then
# network_route_dst_init "${dst_id}"
# fi
#
# network_route_rx3_init "${target_device}"
#}
#--------------------------------------------------------------------------------------------------------------------------
# network_route_init
@@ -1197,19 +1151,30 @@ network_dst_address_refresh()
then
proxy_host="proxy${BASH_REMATCH[1]}.${NETWORK_DST_PROXY_NAME}"
if [[ ( "${dst_ip}" != "0.0.0.0") && ( "${dst_status}" != 1)]]
if [[ ( "${dst_status}" == 1) || ( ( "${dst_status}" != 1) && ( "${dst_ip}" != "0.0.0.0")) ]]
then
if [[ ( ( "${dst_ip}" != "0.0.0.0") && ( "${dst_status}" != 1)) ]]
then
log_info "Network" "Reseting IP: [${dst_host_name}]: IP: [${dst_ip_new}] Status: (${dst_status})"
dst_ip_new="0.0.0.0"
else
dst_ip_new="$( nc -w ${NETWORK_NC_TIMEOUT} ${proxy_host} ${proxy_port} 2>/dev/null)"
dst_ip_new="$( nc -w "${NETWORK_NC_TIMEOUT}" "${proxy_host}" "${proxy_port}" 2>/dev/null)"
fi
if is_valid_ip "${dst_ip_new}"
then
if [[ "${dst_ip}" != "${dst_ip_new}" ]]
then
network_dst_ip_update "${dst_ip_new}"
else
log_trace "Network" "Skiping: [${dst_host_name}]: No changes..."
fi
else
log_info "Network" "Skiping: [${dst_host_name}]: Invalid IP: [${dst_ip_new}]"
fi
else
log_trace "Network" "Skiping: [${dst_host_name}]: Device not Up..."
fi
else
log_info "Network" "Skiping: dst_id: [${dst_id}]: Invalid host_name: [${dst_host_name}]"
fi
@@ -1549,6 +1514,23 @@ network_init()
network_deinit()
{
NETWORK_OPENVPN_STATUS=""
NETWORK_IP_ROUTE_TAB=()
NETWORK_IP_ROUTE_ID_LIST=""
NETWORK_IP_ROUTE_IP_IDX=()
NETWORK_SRC_TYPE=""
NETWORK_SRC_TAB=()
NETWORK_SRC_ID_LIST=""
NETWORK_SRC_IP_IDX=()
NETWORK_DST_TYPE=""
NETWORK_DST_TAB=()
NETWORK_DST_ID_LIST=""
NETWORK_DST_NAME_IDX=()
NETWORK_DST_DEV_IDX=()
dns_deinit
}
@@ -1556,6 +1538,20 @@ network_deinit()
#--------------------------------------------------------------------------------------------------------------------------
# network_reinit
#--------------------------------------------------------------------------------------------------------------------------
network_reinit()
{
network_deinit
network_init
}
#--------------------------------------------------------------------------------------------------------------------------
# network_start
#--------------------------------------------------------------------------------------------------------------------------

View File

@@ -348,6 +348,8 @@ vpn_supervisor()
log_trace "VPN" "Refreshing DNS entries..."
network_dst_address_refresh_all
network_reinit
done
}