blob: 11ef2cecd3c8a99f1177bfeb635f6f27a71292d0 [file] [log] [blame]
# Run dhclient, the system DHCP client, with the appropriate parameters for
# SpaceCast.
lockfile-create --use-pid $lock
run_dhclient() {
local suffix="$1" xargs="$2"
local pidfile="/var/run/dhclient$suffix.$"
local leasefile="/var/run/dhclient$suffix.$"
local conffile="/etc/dhclient$suffix.conf"
if [ -e "$pidfile" ]; then
# kill sends TERM which should make the babysitter exit gracefully.
kill $(cat "$pidfile") >/dev/null 2>&1
rm -f "$pidfile"
babysit 60 dhclient "$iface" $xargs \
-d \
-pf "$pidfile" \
-lf "$leasefile" \
-cf "$conffile" \
2>&1 | logos "dhclient$suffix.$iface" &
run_dhclient "" ""
# -N -P means to request a delegated prefix AND get a address.
# -S means runs stateless config, requests only the extra information.
# On the network box we only run the stateful version, running both
# interfere with each other.
run_dhclient "6" "-N -P -6 --never-gonna-give-you-up 900"
lockfile-remove $lock