summaryrefslogtreecommitdiff
blob: c2d980b575a8a8f924d8e2e7865435fad5241638 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#!/bin/bash
# Copyright (c) 2004-2006 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# Contributed by Roy Marples (uberlord@gentoo.org)

# Instead of writing new functions for dhclient, we simply map their variables
# over to udhcpc style ones and call those scripts!

[[ -e /etc/dhcp/dhclient-enter-hooks ]] \
	&& ( source /etc/dhcp/dhclient-enter-hooks ) 

case "${reason}" in
	BOUND|REBOOT|REBIND) action="bound" ;;
	RENEW) action="renew" ;;
	RELEASE|PREINIT|FAIL|EXPIRE|TIMEOUT) action="deconfig" ;;
	MEDIUM) exit 0 ;;
esac

if [[ -z ${action} ]] ; then
	echo "dhclient sent an unknown action ${reason}!" >&2
	exit 1
fi

export ip="${new_ip_address}"
export subnet="${new_subnet_mask}"
export broadcast="${new_broadcast_address}"
export routers="${new_routers}"

export hostname="${new_host_name}"

export dns_domain_${interface}="${new_domain_name}"
export dns_servers_${interface}="${new_domain_name_servers}"

export ntp_servers_${interface}="${new_domain_name_servers}"

export nis_domain_${interface}="${new_nis_domain}"
export nis_servers_${interface}="${new_nis_servers}"

[[ ${RC_GOT_FUNCTIONS} != "yes" ]] && source /sbin/functions.sh
RC_QUIET_STDOUT="yes"

"${svclib}/net.modules.d/helpers.d/dhcp" "${action}"
result="$?"

[[ -e /etc/dhcp/dhclient-exit-hooks ]] \
	&& ( source /etc/dhcp/dhclient-exit-hooks ) 

exit "${result}"

# vim: ts=4 :