]> git.ipfire.org Git - people/stevee/network.git/blob - hooks/ipv4-dhcp
network: New package.
[people/stevee/network.git] / hooks / ipv4-dhcp
1 #!/bin/sh
2
3 . /lib/network/hook-header
4
5 HOOK_NAME="ipv4-dhcp"
6 HOOK_TYPE="zone"
7
8 MESSAGE="DHCP Daemon..."
9 EXECUTEABLE="/sbin/dhclient"
10
11 case "${action}" in
12 help)
13 ;;
14
15 info)
16 echo "HOOK_NAME=$HOOK_NAME"
17 echo "HOOK_TYPE=$HOOK_TYPE"
18 ;;
19
20 status)
21 check_config zone
22 pidfile="/var/run/dhclient_${zone}.pid"
23 pidofproc -p ${pidfile} ${EXECUTEABLE} &>/dev/null
24 exit $?
25 ;;
26
27 pre-up)
28 ;;
29
30 post-up)
31 check_config zone
32 pidfile="/var/run/dhclient_${zone}.pid"
33 if [ -e "${pidfile}" ]; then
34 kill $(<${pidfile}) &>/dev/null
35 sleep 1
36 fi
37 ${EXECUTEABLE} -pf ${pidfile} ${zone}
38 evaluate_retval start
39 ;;
40
41 pre-down)
42 check_config zone
43 pidfile="/var/run/dhclient_${zone}.pid"
44 killproc -p ${pidfile} ${EXECUTEABLE}
45 evaluate_retval stop
46 ;;
47
48 post-down)
49 ;;
50
51 add)
52 while [ $# -gt 0 ]; do
53 case "$1" in
54 --hostname=*)
55 HOSTNAME=${1#--hostname=}
56 ;;
57 *)
58 echo "Unknown option: $1" >&2
59 exit 1
60 ;;
61 esac
62 shift
63 done
64 cat <<EOF >${CONFIG_ZONES}/${zone}/ipv4-dhcp
65 HOOK="${HOOK_NAME}"
66 HOSTNAME="${HOSTNAME}"
67 EOF
68 [ "$?" = "0" ] && exit ${EXIT_OK} || exit ${EXIT_ERROR}
69 ;;
70
71 rem)
72 ;;
73
74 discover)
75 exit ${EXIT_ERROR}
76 ;;
77
78 *)
79 echo "Usage: ${0} {config|pre-up|post-up|pre-down|post-down|status} [interface]"
80 exit ${EXIT_ERROR}
81 ;;
82 esac
83
84 # End $NETWORK_DEVICES/services/ipv4-dhcp