Skip to content

Commit 2e2c54c

Browse files
committed
Add config for dns/ip checks, bump version
1 parent 616c809 commit 2e2c54c

File tree

1 file changed

+50
-27
lines changed

1 file changed

+50
-27
lines changed

routertools

Lines changed: 50 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ trap 'trap_ctl' SIGINT SIGTERM
4141

4242
# Initialize variables and language setting for compatibility
4343
LANG=C
44-
version="1.3.0a"
44+
version="1.4.0"
4545
error_count=0
4646
crit_count=0
4747
crit_add=0
@@ -53,7 +53,7 @@ alias check_iface_exist=check_iface_exists
5353
Version(){
5454

5555
echo "x86routertools v$version"
56-
56+
exit 0
5757
}
5858

5959
Copyright(){
@@ -386,6 +386,16 @@ initfs(){
386386
echo "# internet commands, and started by internet scripts. example: enp2s0" >> $f
387387
echo "inet_iface=ppp0" >> $f
388388
echo "" >> $f
389+
echo "# dns_check_addresses -> an array." >> $f
390+
echo "# can contain up to 4 names to try & resolve on internet tests. example: google.com" >> $f
391+
echo "# if unset, will use defaults." >> $f
392+
echo "dns_check_addresses=()" >> $f
393+
echo "" >> $f
394+
echo "# ip_check_addresses -> an array." >> $f
395+
echo "# can contain up to 2 IPs to ping on internet tests. example: 8.8.8.8" >> $f
396+
echo "# if unset, will use defaults." >> $f
397+
echo "ip_check_addresses=()" >> $f
398+
echo "" >> $f
389399
echo "# important_services -> a list of systemd services important to this router." >> $f
390400
echo "# they will be started by the connectivity commands. example: dnsmasq haveged" >> $f
391401
echo "# you should also include your firewall service here." >> $f
@@ -2109,21 +2119,15 @@ check_internet(){
21092119
local bad_dns_2=0
21102120
local bad_dns_3=0
21112121
local bad_dns_4=0
2112-
21132122
local reason_1=""
21142123
local reason_2=""
2115-
21162124
local bad_inet_iface=0
21172125
local bad_inet=0
21182126
local bad_inet_1=0
21192127
local bad_inet_2=0
21202128
local bad_dns=0
21212129

2122-
# Names to resolve
2123-
local addr_dns_1="google-public-dns-a.google.com"
2124-
local addr_dns_2="a.root-servers.org"
2125-
local addr_dns_3="www.tp-link.com"
2126-
local addr_dns_4="github.com"
2130+
import_addresses
21272131

21282132
if get_inet_iface_status >/dev/null; then
21292133
ifnq echo "Internet interface test: Online"
@@ -2132,17 +2136,17 @@ check_internet(){
21322136
bad_inet_iface=1
21332137
fi
21342138

2135-
if get_inet_status "1.1.1.1" >/dev/null; then
2136-
ifnq echo "Internet availability test 1 (1.1.1.1): Online"
2139+
if get_inet_status "$addr_inet_1" >/dev/null; then
2140+
ifnq echo "Internet availability test 1 ($addr_inet_1): Online"
21372141
else
2138-
echo "Internet availability test 1 (1.1.1.1): Offline"
2142+
echo "Internet availability test 1 ($addr_inet_1): Offline"
21392143
bad_inet_1=1
21402144
fi
21412145

2142-
if get_inet_status "8.8.8.8" >/dev/null; then
2143-
ifnq echo "Internet availability test 2 (8.8.8.8): Online"
2146+
if get_inet_status "$addr_inet_2" >/dev/null; then
2147+
ifnq echo "Internet availability test 2 ($addr_inet_2): Online"
21442148
else
2145-
echo "Internet availability test 2 (8.8.8.8): Offline"
2149+
echo "Internet availability test 2 ($addr_inet_2): Offline"
21462150
bad_inet_2=1
21472151
fi
21482152

@@ -2232,24 +2236,43 @@ check_internet(){
22322236

22332237
}
22342238

2239+
import_addresses(){
2240+
2241+
# Reload preferences
2242+
load_prefs 2>/dev/null
2243+
2244+
# Default addresses
2245+
addr_dns_1="google-public-dns-a.google.com"
2246+
addr_dns_2="a.root-servers.org"
2247+
addr_dns_3="www.tp-link.com"
2248+
addr_dns_4="github.com"
2249+
addr_inet_1="1.1.1.1"
2250+
addr_inet_2="8.8.8.8"
2251+
2252+
[[ "${dns_check_addresses[0]}" != "" ]] && addr_dns_1="${dns_check_addresses[0]}"
2253+
[[ "${dns_check_addresses[1]}" != "" ]] && addr_dns_2="${dns_check_addresses[1]}"
2254+
[[ "${dns_check_addresses[2]}" != "" ]] && addr_dns_3="${dns_check_addresses[2]}"
2255+
[[ "${dns_check_addresses[3]}" != "" ]] && addr_dns_4="${dns_check_addresses[3]}"
2256+
2257+
[[ "${ip_check_addresses[0]}" != "" ]] && addr_inet_1="${ip_check_addresses[0]}"
2258+
[[ "${ip_check_addresses[1]}" != "" ]] && addr_inet_2="${ip_check_addresses[1]}"
2259+
2260+
is_int $inet_check_timeout || export inet_check_timeout="4"
2261+
2262+
}
2263+
22352264
# Shorter, faster and less precise internet check with hardcoded values and returns 1 or 0
22362265
check_inet_short(){
22372266

2238-
local bad_dns_1=0
2267+
local bad_dns_1=0
22392268
local bad_dns_2=0
22402269
local bad_dns_3=0
22412270
local bad_dns_4=0
22422271
local bad_inet_iface=0
22432272
local bad_inet_1=0
22442273
local bad_inet_2=0
22452274

2246-
# Names to resolve
2247-
local addr_dns_1="google-public-dns-a.google.com"
2248-
local addr_dns_2="a.root-servers.org"
2249-
local addr_dns_3="www.tp-link.com"
2250-
local addr_dns_4="github.com"
2251-
2252-
export inet_check_timeout="3"
2275+
import_addresses
22532276

22542277
if ! get_inet_iface_status >/dev/null; then
22552278
bad_inet_iface=1
@@ -2259,11 +2282,11 @@ check_inet_short(){
22592282
return 1
22602283
fi
22612284

2262-
if ! get_inet_status "1.1.1.1" >/dev/null; then
2285+
if ! get_inet_status "$addr_inet_1" >/dev/null; then
22632286
bad_inet_1=1
22642287
fi
22652288

2266-
if ! get_inet_status "8.8.8.8" >/dev/null; then
2289+
if ! get_inet_status "$addr_inet_2" >/dev/null; then
22672290
bad_inet_2=1
22682291
fi
22692292

@@ -2827,9 +2850,9 @@ done
28272850

28282851
if [[ $count_arg -eq 0 ]]; then
28292852

2830-
Version
28312853
echo "No command given, run 'x86routertools -h' for usage."
2832-
exit 0
2854+
Version
2855+
28332856
else
28342857
if [[ "$@" == "-h" ]] || [[ "$@" == "--help" ]]; then
28352858
true

0 commit comments

Comments
 (0)