diff --git a/usr/local/lib/default.bash b/usr/local/lib/default.bash index 68c55e8..33fdb22 100644 --- a/usr/local/lib/default.bash +++ b/usr/local/lib/default.bash @@ -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" "$@" } diff --git a/usr/local/lib/dns.bash b/usr/local/lib/dns.bash index 7fa1b09..0e67f29 100644 --- a/usr/local/lib/dns.bash +++ b/usr/local/lib/dns.bash @@ -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 + +# :; } diff --git a/usr/local/lib/network.bash b/usr/local/lib/network.bash index b4cb3ab..144f76b 100644 --- a/usr/local/lib/network.bash +++ b/usr/local/lib/network.bash @@ -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 @@ -1189,29 +1143,40 @@ network_dst_address_refresh() local proxy_port=8080 - network_dst_tab_get "${dst_id}" + network_dst_tab_get "${dst_id}" if [[ ( "${dst_host_name}" != "" )]] - then + then if [[ ${dst_host_name} =~ ([0-9]+) ]] then proxy_host="proxy${BASH_REMATCH[1]}.${NETWORK_DST_PROXY_NAME}" - if [[ ( "${dst_ip}" != "0.0.0.0") && ( "${dst_status}" != 1)]] - then - dst_ip_new="0.0.0.0" + 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)" + 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 - dst_ip_new="$( nc -w ${NETWORK_NC_TIMEOUT} ${proxy_host} ${proxy_port} 2>/dev/null)" - fi - - 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}]" + 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}]" + log_info "Network" "Skiping: dst_id: [${dst_id}]: Invalid host_name: [${dst_host_name}]" fi fi } @@ -1549,7 +1514,38 @@ network_init() network_deinit() { - dns_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 +} + + + + + +#-------------------------------------------------------------------------------------------------------------------------- +# network_reinit +#-------------------------------------------------------------------------------------------------------------------------- + +network_reinit() +{ + network_deinit + network_init } diff --git a/usr/local/lib/vpn.bash b/usr/local/lib/vpn.bash index 7869cf2..bf85dd0 100644 --- a/usr/local/lib/vpn.bash +++ b/usr/local/lib/vpn.bash @@ -348,6 +348,8 @@ vpn_supervisor() log_trace "VPN" "Refreshing DNS entries..." network_dst_address_refresh_all + + network_reinit done }