2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-09-02 23:35:23 +00:00

Client Script fixes

[ISC-Bugs #23045] Typos in client/scripts/openbsd
[ISC-Bugs #23565] In the client scripts add a zone id (interface id) if
the domain search address is link local.
[ISC-Bugs #1277] In some of the client scripts add code to handle the
case of the default router information being changed without the address
being changed.
This commit is contained in:
Shawn Routhier
2011-05-18 19:55:44 +00:00
parent 5c09391c07
commit 4f55e11bd4
9 changed files with 173 additions and 11 deletions

View File

@@ -1,7 +1,7 @@
#!/bin/sh
make_resolv_conf() {
if x"$new_domain_name_servers" != x ]; then
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
@@ -15,7 +15,7 @@ make_resolv_conf() {
echo nameserver $nameserver >>/etc/resolv.conf.dhclient
done
mv /etc/ersolv.conf.dhclient /etc/resolv.conf
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
@@ -24,7 +24,14 @@ make_resolv_conf() {
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
fi
for nameserver in ${new_dhcp6_name_servers} ; do
echo nameserver ${nameserver} >> /etc/resolv.conf.dhclient6
# If the nameserver has a link-local address
# add a <zone_id> (interface name) to it.
case $nameserver in
fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";;
*) zone_id='';;
esac
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
done
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
@@ -145,6 +152,19 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
shift; shift
done
fi
else
# we haven't changed the address, have we changed other options
# that we wish to update?
if [ x$new_routers != x ] && [ x$new_routers != x$old_routers ] ; then
# if we've changed routers delete the old and add the new.
$LOGGER "New Routers: $new_routers"
for router in $old_routers; do
route delete default $router >/dev/null 2>&1
done
for router in $new_routers; do
route add default $router >/dev/null 2>&1
done
fi
fi
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
then