[CFR] reflect resolv.conf update to running application
Matthew N. Dodd
mdodd at FreeBSD.ORG
Sun Aug 28 06:25:13 GMT 2005
On Sat, 27 Aug 2005, Brooks Davis wrote:
> I'd like to see dhclient-script pull in /etc/rc.conf.
Attached.
--
10 40 80 C0 00 FF FF FF FF C0 00 00 00 00 10 AA AA 03 00 00 00 08 00
-------------- next part --------------
Index: sbin/dhclient/dhclient-script
===================================================================
RCS file: /home/cvs/src/sbin/dhclient/dhclient-script,v
retrieving revision 1.8
diff -u -u -r1.8 dhclient-script
--- sbin/dhclient/dhclient-script 26 Aug 2005 20:31:04 -0000 1.8
+++ sbin/dhclient/dhclient-script 28 Aug 2005 06:02:16 -0000
@@ -19,6 +19,9 @@
#
#
+. /etc/rc.subr
+load_rc_config dhclient-script
+
NETSTAT=/usr/bin/netstat
AWK=/usr/bin/awk
HOSTNAME=/bin/hostname
@@ -127,6 +130,23 @@
fi
}
+make_named_forwarders() {
+ if [ -z "$new_domain_name_servers" ]; then
+ return 1
+ fi
+
+ rm -f /var/run/named.forwarders
+ echo " forwarders {" > /var/run/named.forwarders
+ for nameserver in $new_domain_name_servers; do
+ echo " $nameserver;" >> /var/run/named.forwarders
+ done
+ echo " };" >> /var/run/named.forwarders
+
+ cd /etc/namedb && make -f make-named.conf
+
+ return 0
+}
+
add_new_resolv_conf() {
# XXX Old code did not create/update resolv.conf unless both
# $new_domain_name and $new_domain_name_servers were provided. PR
@@ -238,7 +258,12 @@
if [ "$new_ip_address" != "$alias_ip_address" ]; then
add_new_alias
fi
- add_new_resolv_conf
+ if checkyesno dhclient_script_resolv_conf; then
+ add_new_resolv_conf
+ fi
+ if checkyesno dhclient_script_named_forwarders; then
+ make_named_forwarders
+ fi
;;
EXPIRE|FAIL)
@@ -266,8 +291,13 @@
add_new_alias
fi
add_new_routes
- if add_new_resolv_conf; then
- exit_with_hooks 0
+ if checkyesno dhclient_script_named_forwarders; then
+ make_named_forwarders
+ fi
+ if checkyesno dhclient_script_resolv_conf; then
+ if add_new_resolv_conf; then
+ exit_with_hooks 0
+ fi
fi
fi
fi
Index: etc/defaults/rc.conf
===================================================================
RCS file: /home/cvs/src/etc/defaults/rc.conf,v
retrieving revision 1.259
diff -u -u -r1.259 rc.conf
--- etc/defaults/rc.conf 24 Aug 2005 16:25:47 -0000 1.259
+++ etc/defaults/rc.conf 28 Aug 2005 05:46:18 -0000
@@ -93,6 +93,9 @@
nisdomainname="NO" # Set to NIS domain if using NIS (or NO).
dhclient_program="/sbin/dhclient" # Path to dhcp client program.
dhclient_flags="" # Additional flags to pass to dhcp client.
+dhclient_script_resolv_conf="YES" # Update /etc/resolv.conf
+dhclient_script_named_forwarders="NO" # Update /var/run/named.forwarders and
+ # rebuild /etc/namedb/named.conf
background_dhclient="NO" # Start dhcp client in the background.
firewall_enable="NO" # Set to YES to enable firewall functionality
firewall_script="/etc/rc.firewall" # Which script to run to set up the firewall
Index: etc/namedb/Makefile
===================================================================
RCS file: /home/cvs/src/etc/namedb/Makefile,v
retrieving revision 1.4
diff -u -u -r1.4 Makefile
--- etc/namedb/Makefile 21 Dec 2004 08:46:50 -0000 1.4
+++ etc/namedb/Makefile 28 Aug 2005 06:14:50 -0000
@@ -1,7 +1,7 @@
-# $FreeBSD$
+# $FreeBSD: src/etc/namedb/Makefile,v 1.4 2004/12/21 08:46:50 ru Exp $
FILES= PROTO.localhost.rev PROTO.localhost-v6.rev named.conf named.root \
- make-localhost
+ make-localhost make-named.conf
NO_OBJ=
FILESDIR= /etc/namedb
FILESMODE= 644
Index: etc/namedb/make-named.conf
===================================================================
RCS file: etc/namedb/make-named.conf
diff -N etc/namedb/make-named.conf
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ etc/namedb/make-named.conf 28 Aug 2005 05:59:12 -0000
@@ -0,0 +1,17 @@
+# $FreeBSD$
+#
+
+#
+# Move /etc/named.conf to /etc/named.conf.in and add the following
+# lines to the options section.
+#
+# forward only;
+# #include "/var/run/named.forwarders"
+#
+
+named.conf: named.conf.in /var/run/named.forwarders
+ cpp -P -C named.conf.in > $@
+ /etc/rc.d/named restart
+
+/var/run/named.forwarders:
+ @touch /var/run/named.forwarders
More information about the freebsd-arch
mailing list