396 lines
15 KiB
Diff
396 lines
15 KiB
Diff
|
Submitted By: Mario Fetka (mario dot fetka at gmail dot com)
|
||
|
Date: 2010-11-11
|
||
|
Initial Package Version: 4.1.2
|
||
|
Origin: gentoo dhcp-4.0-dhclient-resolvconf.patch
|
||
|
Upstream Status: unknown
|
||
|
Description: add dhconfig resolveconf support
|
||
|
|
||
|
diff -Naur dhcp-4.1.2.orig/client/scripts/bsdos dhcp-4.1.2/client/scripts/bsdos
|
||
|
--- dhcp-4.1.2.orig/client/scripts/bsdos 2010-11-11 19:44:00.000000000 +0000
|
||
|
+++ dhcp-4.1.2/client/scripts/bsdos 2010-11-11 19:44:06.000000000 +0000
|
||
|
@@ -1,34 +1,41 @@
|
||
|
#!/bin/sh
|
||
|
|
||
|
make_resolv_conf() {
|
||
|
+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
|
||
|
+ return 0
|
||
|
+ fi
|
||
|
+ local conf=
|
||
|
if [ x"$new_domain_name_servers" != x ]; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient
|
||
|
if [ "x$new_domain_search" != x ]; then
|
||
|
- echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}search ${new_domain_search}\n"
|
||
|
elif [ "x$new_domain_name" != x ]; then
|
||
|
# Note that the DHCP 'Domain Name Option' is really just a domain
|
||
|
# name, and that this practice of using the domain name option as
|
||
|
# a search path is both nonstandard and deprecated.
|
||
|
- echo search $new_domain_name >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}search ${new_domain_name}\n"
|
||
|
fi
|
||
|
for nameserver in $new_domain_name_servers; do
|
||
|
- echo nameserver $nameserver >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
-
|
||
|
- mv /etc/resolv.conf.dhclient /etc/resolv.conf
|
||
|
elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient6
|
||
|
- chmod 644 /etc/resolv.conf.dhclient6
|
||
|
-
|
||
|
if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||
|
- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}search ${new_dhcp6_domain_search}\n"
|
||
|
fi
|
||
|
for nameserver in ${new_dhcp6_name_servers} ; do
|
||
|
- echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
+ fi
|
||
|
|
||
|
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||
|
+ if [ x"$conf" != x ]; then
|
||
|
+ conf="# Generated by dhclient or interface $interface\n${conf}"
|
||
|
+ if type resolvconf >/dev/null 2>&1; then
|
||
|
+ printf "${conf}" | resolvconf -a $interface
|
||
|
+ else
|
||
|
+ printf "${conf}" > /etc/resolv.conf
|
||
|
+ chmod 644 /etc/resolv.conf
|
||
|
+ fi
|
||
|
fi
|
||
|
+
|
||
|
# If we're making confs, may as well make an ntp.conf too
|
||
|
make_ntp_conf
|
||
|
}
|
||
|
diff -Naur dhcp-4.1.2.orig/client/scripts/freebsd dhcp-4.1.2/client/scripts/freebsd
|
||
|
--- dhcp-4.1.2.orig/client/scripts/freebsd 2010-11-11 19:44:00.000000000 +0000
|
||
|
+++ dhcp-4.1.2/client/scripts/freebsd 2010-11-11 19:44:06.000000000 +0000
|
||
|
@@ -11,68 +11,41 @@
|
||
|
fi
|
||
|
|
||
|
make_resolv_conf() {
|
||
|
+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
|
||
|
+ return 0
|
||
|
+ fi
|
||
|
+ local conf=
|
||
|
if [ x"$new_domain_name_servers" != x ]; then
|
||
|
- ( cat /dev/null > /etc/resolv.conf.dhclient )
|
||
|
- exit_status=$?
|
||
|
- if [ $exit_status -ne 0 ]; then
|
||
|
- $LOGGER "Unable to create /etc/resolv.conf.dhclient: Error $exit_status"
|
||
|
- else
|
||
|
- if [ "x$new_domain_search" != x ]; then
|
||
|
- ( echo search $new_domain_search >> /etc/resolv.conf.dhclient )
|
||
|
- exit_status=$?
|
||
|
- elif [ "x$new_domain_name" != x ]; then
|
||
|
- # Note that the DHCP 'Domain Name Option' is really just a domain
|
||
|
- # name, and that this practice of using the domain name option as
|
||
|
- # a search path is both nonstandard and deprecated.
|
||
|
- ( echo search $new_domain_name >> /etc/resolv.conf.dhclient )
|
||
|
- exit_status=$?
|
||
|
- fi
|
||
|
- for nameserver in $new_domain_name_servers; do
|
||
|
- if [ $exit_status -ne 0 ]; then
|
||
|
- break
|
||
|
- fi
|
||
|
- ( echo nameserver $nameserver >>/etc/resolv.conf.dhclient )
|
||
|
- exit_status=$?
|
||
|
- done
|
||
|
-
|
||
|
- # If there were no errors, attempt to mv the new file into place.
|
||
|
- if [ $exit_status -eq 0 ]; then
|
||
|
- ( mv /etc/resolv.conf.dhclient /etc/resolv.conf )
|
||
|
- exit_status=$?
|
||
|
- fi
|
||
|
-
|
||
|
- if [ $exit_status -ne 0 ]; then
|
||
|
- $LOGGER "Error while writing new /etc/resolv.conf."
|
||
|
- fi
|
||
|
+ if [ "x$new_domain_search" != x ]; then
|
||
|
+ conf="${conf}search ${new_domain_search}\n"
|
||
|
+ elif [ "x$new_domain_name" != x ]; then
|
||
|
+ # Note that the DHCP 'Domain Name Option' is really just a domain
|
||
|
+ # name, and that this practice of using the domain name option as
|
||
|
+ # a search path is both nonstandard and deprecated.
|
||
|
+ conf="${conf}search ${new_domain_name}\n"
|
||
|
fi
|
||
|
+ for nameserver in $new_domain_name_servers; do
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
+ done
|
||
|
elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||
|
- ( cat /dev/null > /etc/resolv.conf.dhclient6 )
|
||
|
- exit_status=$?
|
||
|
- if [ $exit_status -ne 0 ] ; then
|
||
|
- $LOGGER "Unable to create /etc/resolv.conf.dhclient6: Error $exit_status"
|
||
|
- else
|
||
|
- if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||
|
- ( echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6 )
|
||
|
- exit_status=$?
|
||
|
- fi
|
||
|
- for nameserver in ${new_dhcp6_name_servers} ; do
|
||
|
- if [ $exit_status -ne 0 ] ; then
|
||
|
- break
|
||
|
- fi
|
||
|
- ( echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6 )
|
||
|
- exit_status=$?
|
||
|
- done
|
||
|
-
|
||
|
- if [ $exit_status -eq 0 ] ; then
|
||
|
- ( mv /etc/resolv.conf.dhclient6 /etc/resolv.conf )
|
||
|
- exit_status=$?
|
||
|
- fi
|
||
|
+ if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||
|
+ conf="${conf}search ${new_dhcp6_domain_search}\n"
|
||
|
+ fi
|
||
|
+ for nameserver in ${new_dhcp6_name_servers} ; do
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
+ done
|
||
|
+ fi
|
||
|
|
||
|
- if [ $exit_status -ne 0 ] ; then
|
||
|
- $LOGGER "Error while writing new /etc/resolv.conf."
|
||
|
- fi
|
||
|
+ if [ x"$conf" != x ]; then
|
||
|
+ conf="# Generated by dhclient or interface $interface\n${conf}"
|
||
|
+ if type resolvconf >/dev/null 2>&1; then
|
||
|
+ printf "${conf}" | resolvconf -a $interface
|
||
|
+ else
|
||
|
+ printf "${conf}" > /etc/resolv.conf
|
||
|
+ chmod 644 /etc/resolv.conf
|
||
|
fi
|
||
|
fi
|
||
|
+
|
||
|
# If we're making confs, may as well make an ntp.conf too
|
||
|
make_ntp_conf
|
||
|
}
|
||
|
diff -Naur dhcp-4.1.2.orig/client/scripts/linux dhcp-4.1.2/client/scripts/linux
|
||
|
--- dhcp-4.1.2.orig/client/scripts/linux 2010-11-11 19:44:00.000000000 +0000
|
||
|
+++ dhcp-4.1.2/client/scripts/linux 2010-11-11 19:44:06.000000000 +0000
|
||
|
@@ -26,35 +26,41 @@
|
||
|
ip=/sbin/ip
|
||
|
|
||
|
make_resolv_conf() {
|
||
|
+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
|
||
|
+ return 0
|
||
|
+ fi
|
||
|
+ local conf=
|
||
|
if [ x"$new_domain_name_servers" != x ]; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient
|
||
|
- chmod 644 /etc/resolv.conf.dhclient
|
||
|
- if [ x"$new_domain_search" != x ]; then
|
||
|
- echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
||
|
- elif [ x"$new_domain_name" != x ]; then
|
||
|
+ if [ "x$new_domain_search" != x ]; then
|
||
|
+ conf="${conf}search ${new_domain_search}\n"
|
||
|
+ elif [ "x$new_domain_name" != x ]; then
|
||
|
# Note that the DHCP 'Domain Name Option' is really just a domain
|
||
|
# name, and that this practice of using the domain name option as
|
||
|
# a search path is both nonstandard and deprecated.
|
||
|
- echo search $new_domain_name >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}search ${new_domain_name}\n"
|
||
|
fi
|
||
|
for nameserver in $new_domain_name_servers; do
|
||
|
- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
-
|
||
|
- mv /etc/resolv.conf.dhclient /etc/resolv.conf
|
||
|
elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient6
|
||
|
- chmod 644 /etc/resolv.conf.dhclient6
|
||
|
-
|
||
|
if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||
|
- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}search ${new_dhcp6_domain_search}\n"
|
||
|
fi
|
||
|
for nameserver in ${new_dhcp6_name_servers} ; do
|
||
|
- echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
+ fi
|
||
|
|
||
|
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||
|
+ if [ x"$conf" != x ]; then
|
||
|
+ conf="# Generated by dhclient or interface $interface\n${conf}"
|
||
|
+ if type resolvconf >/dev/null 2>&1; then
|
||
|
+ printf "${conf}" | resolvconf -a $interface
|
||
|
+ else
|
||
|
+ printf "${conf}" > /etc/resolv.conf
|
||
|
+ chmod 644 /etc/resolv.conf
|
||
|
+ fi
|
||
|
fi
|
||
|
+
|
||
|
# If we're making confs, may as well make an ntp.conf too
|
||
|
make_ntp_conf
|
||
|
}
|
||
|
diff -Naur dhcp-4.1.2.orig/client/scripts/netbsd dhcp-4.1.2/client/scripts/netbsd
|
||
|
--- dhcp-4.1.2.orig/client/scripts/netbsd 2010-11-11 19:44:00.000000000 +0000
|
||
|
+++ dhcp-4.1.2/client/scripts/netbsd 2010-11-11 19:44:40.000000000 +0000
|
||
|
@@ -1,34 +1,41 @@
|
||
|
#!/bin/sh
|
||
|
|
||
|
make_resolv_conf() {
|
||
|
- if [ "x$new_domain_name" != x ] && [ x"$new_domain_name_servers" != x ]; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient
|
||
|
+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
|
||
|
+ return 0
|
||
|
+ fi
|
||
|
+ local conf=
|
||
|
+ if [ x"$new_domain_name_servers" != x ]; then
|
||
|
if [ "x$new_domain_search" != x ]; then
|
||
|
- echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}search ${new_domain_search}\n"
|
||
|
elif [ "x$new_domain_name" != x ]; then
|
||
|
# Note that the DHCP 'Domain Name Option' is really just a domain
|
||
|
# name, and that this practice of using the domain name option as
|
||
|
# a search path is both nonstandard and deprecated.
|
||
|
- echo search $new_domain_name >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}search ${new_domain_name}\n"
|
||
|
fi
|
||
|
for nameserver in $new_domain_name_servers; do
|
||
|
- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
-
|
||
|
- mv /etc/resolv.conf.dhclient /etc/resolv.conf
|
||
|
elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient6
|
||
|
- chmod 644 /etc/resolv.conf.dhclient6
|
||
|
-
|
||
|
if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||
|
- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}search ${new_dhcp6_domain_search}\n"
|
||
|
fi
|
||
|
for nameserver in ${new_dhcp6_name_servers} ; do
|
||
|
- echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
+ fi
|
||
|
|
||
|
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||
|
+ if [ x"$conf" != x ]; then
|
||
|
+ conf="# Generated by dhclient or interface $interface\n${conf}"
|
||
|
+ if type resolvconf >/dev/null 2>&1; then
|
||
|
+ printf "${conf}" | resolvconf -a $interface
|
||
|
+ else
|
||
|
+ printf "${conf}" > /etc/resolv.conf
|
||
|
+ chmod 644 /etc/resolv.conf
|
||
|
+ fi
|
||
|
fi
|
||
|
+
|
||
|
# If we're making confs, may as well make an ntp.conf too
|
||
|
make_ntp_conf
|
||
|
}
|
||
|
diff -Naur dhcp-4.1.2.orig/client/scripts/openbsd dhcp-4.1.2/client/scripts/openbsd
|
||
|
--- dhcp-4.1.2.orig/client/scripts/openbsd 2010-11-11 19:44:00.000000000 +0000
|
||
|
+++ dhcp-4.1.2/client/scripts/openbsd 2010-11-11 19:44:06.000000000 +0000
|
||
|
@@ -1,34 +1,41 @@
|
||
|
#!/bin/sh
|
||
|
|
||
|
make_resolv_conf() {
|
||
|
- if x"$new_domain_name_servers" != x ]; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient
|
||
|
- if [ x"$new_domain_search" != x ]; then
|
||
|
- echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
||
|
- elif [ x"$new_domain_name" != x ]; then
|
||
|
+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
|
||
|
+ return 0
|
||
|
+ fi
|
||
|
+ local conf=
|
||
|
+ if [ x"$new_domain_name_servers" != x ]; then
|
||
|
+ if [ "x$new_domain_search" != x ]; then
|
||
|
+ conf="${conf}search ${new_domain_search}\n"
|
||
|
+ elif [ "x$new_domain_name" != x ]; then
|
||
|
# Note that the DHCP 'Domain Name Option' is really just a domain
|
||
|
# name, and that this practice of using the domain name option as
|
||
|
# a search path is both nonstandard and deprecated.
|
||
|
- echo search $new_domain_name >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}search ${new_domain_name}\n"
|
||
|
fi
|
||
|
for nameserver in $new_domain_name_servers; do
|
||
|
- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
-
|
||
|
- mv /etc/ersolv.conf.dhclient /etc/resolv.conf
|
||
|
elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient6
|
||
|
- chmod 644 /etc/resolv.conf.dhclient6
|
||
|
-
|
||
|
if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||
|
- echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}search ${new_dhcp6_domain_search}\n"
|
||
|
fi
|
||
|
for nameserver in ${new_dhcp6_name_servers} ; do
|
||
|
- echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
+ fi
|
||
|
|
||
|
- mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||
|
+ if [ x"$conf" != x ]; then
|
||
|
+ conf="# Generated by dhclient or interface $interface\n${conf}"
|
||
|
+ if type resolvconf >/dev/null 2>&1; then
|
||
|
+ printf "${conf}" | resolvconf -a $interface
|
||
|
+ else
|
||
|
+ printf "${conf}" > /etc/resolv.conf
|
||
|
+ chmod 644 /etc/resolv.conf
|
||
|
+ fi
|
||
|
fi
|
||
|
+
|
||
|
# If we're making confs, may as well make an ntp.conf too
|
||
|
make_ntp_conf
|
||
|
}
|
||
|
diff -Naur dhcp-4.1.2.orig/client/scripts/solaris dhcp-4.1.2/client/scripts/solaris
|
||
|
--- dhcp-4.1.2.orig/client/scripts/solaris 2010-11-11 19:44:00.000000000 +0000
|
||
|
+++ dhcp-4.1.2/client/scripts/solaris 2010-11-11 19:44:06.000000000 +0000
|
||
|
@@ -1,22 +1,41 @@
|
||
|
#!/bin/sh
|
||
|
|
||
|
make_resolv_conf() {
|
||
|
+ if [ x"$PEER_DNS" != x ] && [ x$"PEER_DNS" != xyes ]; then
|
||
|
+ return 0
|
||
|
+ fi
|
||
|
+ local conf=
|
||
|
if [ x"$new_domain_name_servers" != x ]; then
|
||
|
- cat /dev/null > /etc/resolv.conf.dhclient
|
||
|
- if [ x"$new_domain_search" != x ]; then
|
||
|
- echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
||
|
- elif [ x"$new_domain_name" != x ]; then
|
||
|
+ if [ "x$new_domain_search" != x ]; then
|
||
|
+ conf="${conf}search ${new_domain_search}\n"
|
||
|
+ elif [ "x$new_domain_name" != x ]; then
|
||
|
# Note that the DHCP 'Domain Name Option' is really just a domain
|
||
|
# name, and that this practice of using the domain name option as
|
||
|
# a search path is both nonstandard and deprecated.
|
||
|
- echo search $new_domain_name >> /etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}search ${new_domain_name}\n"
|
||
|
fi
|
||
|
for nameserver in $new_domain_name_servers; do
|
||
|
- echo nameserver $nameserver >>/etc/resolv.conf.dhclient
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
+ done
|
||
|
+ elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||
|
+ if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||
|
+ conf="${conf}search ${new_dhcp6_domain_search}\n"
|
||
|
+ fi
|
||
|
+ for nameserver in ${new_dhcp6_name_servers} ; do
|
||
|
+ conf="${conf}nameserver ${nameserver}\n"
|
||
|
done
|
||
|
+ fi
|
||
|
|
||
|
- mv /etc/resolv.conf.dhclient /etc/resolv.conf
|
||
|
+ if [ x"$conf" != x ]; then
|
||
|
+ conf="# Generated by dhclient or interface $interface\n${conf}"
|
||
|
+ if type resolvconf >/dev/null 2>&1; then
|
||
|
+ printf "${conf}" | resolvconf -a $interface
|
||
|
+ else
|
||
|
+ printf "${conf}" > /etc/resolv.conf
|
||
|
+ chmod 644 /etc/resolv.conf
|
||
|
+ fi
|
||
|
fi
|
||
|
+
|
||
|
# If we're making confs, may as well make an ntp.conf too
|
||
|
make_ntp_conf
|
||
|
}
|