ifupdown-ng/executor-scripts/dhcp
2020-07-25 03:04:02 -06:00

50 lines
941 B
Bash
Executable file

#!/bin/sh
set -e
determine_implementation() {
[ -x /sbin/dhcpcd ] && echo "dhcpcd" && return
[ -x /sbin/udhcpc ] && echo "udhcpc" && return
echo "???"
}
start() {
case "$1" in
dhcpcd)
[ -z "$IF_HOSTNAME" ] && optargs="$optargs -h $IF_HOSTNAME"
[ -z "$IF_VENDOR" ] && optargs="$optargs -i $IF_VENDOR"
[ -z "$IF_CLIENT" ] && optargs="$optargs -i $IF_CLIENT"
[ -z "$IF_LEASETIME" ] && optargs="$optargs -l $IF_LEASETIME"
/sbin/dhcpcd $optargs $IFACE
udhcpc)
/sbin/udhcpc -b -R -p /var/run/udhcpc.$IFACE.pid -i $IFACE
;;
*)
echo "implementation $1 not supported"
exit 1
esac
}
stop() {
case "$1" in
dhcpcd)
/sbin/dhcpcd -k $IFACE
;;
udhcpc)
kill $(cat /var/lib/udhcpc.$IFACE.pid)
;;
*)
echo "implementation $1 not supported"
exit 1
esac
}
impl=$(determine_implementation)
[ -z "$VERBOSE" ] || set -x
case "$MODE" in
start) start $impl ;;
stop) stop $impl ;;
*) echo "unknown mode $MODE" ;;
esac