diff options
author | William Hubbs <w.d.hubbs@gmail.com> | 2017-02-26 13:51:50 -0600 |
---|---|---|
committer | William Hubbs <w.d.hubbs@gmail.com> | 2017-02-26 13:51:50 -0600 |
commit | d4d0f25a4844ecaed43de913e8b729e7a2e894db (patch) | |
tree | 5f4c80f447862b3737d17d8bc825d38209a518ba | |
parent | 1cb44092fce298004ab4c4547c6fbcac29c5997f (diff) |
net-online: updates to make the service more usable
- switch from attempting to ping the default gateway to a host outside
the local network, defaulting to google.com.
- along with this, change the name of the variable that requests a ping
test to include_ping_test so the meaning is more clear.
-rw-r--r-- | conf.d/net-online | 11 | ||||
-rw-r--r-- | init.d/net-online.in | 27 |
2 files changed, 17 insertions, 21 deletions
diff --git a/conf.d/net-online b/conf.d/net-online index aa2c76ba..9abe9ea4 100644 --- a/conf.d/net-online +++ b/conf.d/net-online @@ -3,10 +3,13 @@ # default is all interfaces that support ethernet. #interfaces="" -# This setting controls whether a ping to the default gateway is -# included in the test for network connectivity after all interfaces -# are active. -#ping_default_gateway=no +# This setting controls whether a ping test is included in the test for +# network connectivity after all interfaces are active. +#include_ping_test=no + +# This setting is the host to attempt to ping if the above is yes. +# The default is google.com. +#ping_test_host=some.host.name # The timeout setting controls how long the net-online service waits # for the network to be configured. diff --git a/init.d/net-online.in b/init.d/net-online.in index dd3548d6..31af4dd1 100644 --- a/init.d/net-online.in +++ b/init.d/net-online.in @@ -15,6 +15,7 @@ depend() { after modules need sysfs + provide network-online keyword -docker -jail -lxc -openvz -prefix -systemd-nspawn -uml -vserver } @@ -27,19 +28,6 @@ get_interfaces() done } -get_default_gateway() -{ - local cmd gateway - if command -v ip > /dev/null 2>&1; then - cmd="ip route show" - else - cmd=route - fi - set -- $($cmd | grep default) - [ "$2" != via ] && gateway="$2" || gateway="$3" - printf "%s" $gateway -} - start () { local carriers configured dev gateway ifcount infinite @@ -66,10 +54,15 @@ start () : $((timeout -= 1)) done ! $infinite && [ $timeout -eq 0 ] && rc=1 - if [ $rc -eq 0 ] && yesno ${ping_default_gateway:-no}; then - gateway="$(get_default_gateway)" - if [ -n "$gateway" ] && ! ping -c 1 $gateway > /dev/null 2>&1; then - rc=1 + include_ping_test=${include_ping_test:-${ping_default_gateway}} + if [ -n "${ping_default_gateway}" ]; then + ewarn "ping_default_gateway is deprecated, please use include_ping_test' + fi + if [ $rc -eq 0 ] && yesno ${include_ping_test:-no}; then + ping_test_host="${ping_test_host:-google.com}" + if [ -n "$ping_test_host" ]; then + ping -c 1 $ping_test_host > /dev/null 2>&1 + rc=$? fi fi eend $rc "The network is offline" |