mirror of
https://gitlab.isc.org/isc-projects/dhcp
synced 2025-08-23 02:17:31 +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:
parent
5c09391c07
commit
4f55e11bd4
8
RELNOTES
8
RELNOTES
@ -148,6 +148,14 @@ work on other platforms. Please report any problems and suggested fixes to
|
|||||||
to perform an fsync() operation on the lease database before reply,
|
to perform an fsync() operation on the lease database before reply,
|
||||||
which improves performance. [ISC-Bugs #22228]
|
which improves performance. [ISC-Bugs #22228]
|
||||||
|
|
||||||
|
- 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.
|
||||||
|
|
||||||
Changes since 4.2.0
|
Changes since 4.2.0
|
||||||
|
|
||||||
- Documentation cleanup covering multiple tickets
|
- Documentation cleanup covering multiple tickets
|
||||||
|
@ -24,7 +24,14 @@ make_resolv_conf() {
|
|||||||
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||||||
fi
|
fi
|
||||||
for nameserver in ${new_dhcp6_name_servers} ; do
|
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
|
done
|
||||||
|
|
||||||
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||||||
@ -151,6 +158,19 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
|||||||
shift; shift
|
shift; shift
|
||||||
done
|
done
|
||||||
fi
|
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
|
fi
|
||||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||||
then
|
then
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# $Id: freebsd,v 1.23 2009/04/21 14:09:57 pselkirk Exp $
|
# $Id: freebsd,v 1.24 2011/05/18 19:55:44 sar Exp $
|
||||||
#
|
#
|
||||||
# $FreeBSD$
|
# $FreeBSD$
|
||||||
|
|
||||||
@ -59,7 +59,14 @@ make_resolv_conf() {
|
|||||||
if [ $exit_status -ne 0 ] ; then
|
if [ $exit_status -ne 0 ] ; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
( 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 )
|
||||||
exit_status=$?
|
exit_status=$?
|
||||||
done
|
done
|
||||||
|
|
||||||
@ -208,6 +215,25 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
|||||||
shift; shift
|
shift; shift
|
||||||
done
|
done
|
||||||
fi
|
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
|
||||||
|
# If the subnet is captive, eg the netmask is /32 but the default
|
||||||
|
# gateway is (obviously) outside of this, then we need to produce a
|
||||||
|
# host route to reach the gateway.
|
||||||
|
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
|
||||||
|
route add -host $router -interface $interface
|
||||||
|
fi
|
||||||
|
route add default $router >/dev/null 2>&1
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||||
then
|
then
|
||||||
|
@ -49,9 +49,19 @@ make_resolv_conf() {
|
|||||||
if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
if [ "x${new_dhcp6_domain_search}" != x ] ; then
|
||||||
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||||||
fi
|
fi
|
||||||
|
shopt -s nocasematch
|
||||||
for nameserver in ${new_dhcp6_name_servers} ; do
|
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.
|
||||||
|
if [[ "$nameserver" =~ ^fe80:: ]]
|
||||||
|
then
|
||||||
|
zone_id="%$interface"
|
||||||
|
else
|
||||||
|
zone_id=
|
||||||
|
fi
|
||||||
|
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
|
||||||
done
|
done
|
||||||
|
shopt -u nocasematch
|
||||||
|
|
||||||
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||||||
fi
|
fi
|
||||||
@ -161,6 +171,21 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
|||||||
fi
|
fi
|
||||||
route add default gw $router $metric_arg dev $interface
|
route add default gw $router $metric_arg dev $interface
|
||||||
done
|
done
|
||||||
|
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.
|
||||||
|
for router in $old_routers; do
|
||||||
|
route del default gw $router
|
||||||
|
done
|
||||||
|
for router in $new_routers; do
|
||||||
|
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
|
||||||
|
route add -host $router dev $interface
|
||||||
|
fi
|
||||||
|
route add default gw $router $metric_arg dev $interface
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||||
then
|
then
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# $Id: macos,v 1.2 2008/11/03 23:32:12 dhankins Exp $
|
# $Id: macos,v 1.3 2011/05/18 19:55:44 sar Exp $
|
||||||
#
|
#
|
||||||
# automous run of this script will commit the DNS setting
|
# automous run of this script will commit the DNS setting
|
||||||
#
|
#
|
||||||
@ -29,7 +29,14 @@ make_resolv_conf() {
|
|||||||
if [ $exit_status -ne 0 ]; then
|
if [ $exit_status -ne 0 ]; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
( echo nameserver ${nameserver} >> /var/run/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 )
|
||||||
exit_status=$?
|
exit_status=$?
|
||||||
done
|
done
|
||||||
|
|
||||||
|
@ -24,7 +24,14 @@ make_resolv_conf() {
|
|||||||
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||||||
fi
|
fi
|
||||||
for nameserver in ${new_dhcp6_name_servers} ; do
|
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
|
done
|
||||||
|
|
||||||
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||||||
@ -151,6 +158,19 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
|||||||
shift; shift
|
shift; shift
|
||||||
done
|
done
|
||||||
fi
|
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
|
fi
|
||||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||||
then
|
then
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
|
||||||
make_resolv_conf() {
|
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
|
cat /dev/null > /etc/resolv.conf.dhclient
|
||||||
if [ x"$new_domain_search" != x ]; then
|
if [ x"$new_domain_search" != x ]; then
|
||||||
echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
echo search $new_domain_search >> /etc/resolv.conf.dhclient
|
||||||
@ -15,7 +15,7 @@ make_resolv_conf() {
|
|||||||
echo nameserver $nameserver >>/etc/resolv.conf.dhclient
|
echo nameserver $nameserver >>/etc/resolv.conf.dhclient
|
||||||
done
|
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
|
elif [ "x${new_dhcp6_name_servers}" != x ] ; then
|
||||||
cat /dev/null > /etc/resolv.conf.dhclient6
|
cat /dev/null > /etc/resolv.conf.dhclient6
|
||||||
chmod 644 /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
|
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||||||
fi
|
fi
|
||||||
for nameserver in ${new_dhcp6_name_servers} ; do
|
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
|
done
|
||||||
|
|
||||||
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||||||
@ -145,6 +152,19 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
|||||||
shift; shift
|
shift; shift
|
||||||
done
|
done
|
||||||
fi
|
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
|
fi
|
||||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||||
then
|
then
|
||||||
|
@ -25,7 +25,14 @@ make_resolv_conf() {
|
|||||||
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
echo search ${new_dhcp6_domain_search} >> /etc/resolv.conf.dhclient6
|
||||||
fi
|
fi
|
||||||
for nameserver in ${new_dhcp6_name_servers} ; do
|
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
|
done
|
||||||
|
|
||||||
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
mv /etc/resolv.conf.dhclient6 /etc/resolv.conf
|
||||||
@ -128,6 +135,22 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
|||||||
fi
|
fi
|
||||||
route add default gw $router
|
route add default gw $router
|
||||||
done
|
done
|
||||||
|
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
|
||||||
|
done
|
||||||
|
for router in $new_routers; do
|
||||||
|
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
|
||||||
|
route add -host $router dev $interface
|
||||||
|
fi
|
||||||
|
route add default gw $router
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||||
then
|
then
|
||||||
|
@ -128,6 +128,19 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
|
|||||||
for router in $new_routers; do
|
for router in $new_routers; do
|
||||||
route add default $router 1 >/dev/null 2>&1
|
route add default $router 1 >/dev/null 2>&1
|
||||||
done
|
done
|
||||||
|
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 1 >/dev/null 2>&1
|
||||||
|
done
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
if [ x$new_ip_address != x$alias_ip_address ] && [ x$alias_ip_address != x ];
|
||||||
then
|
then
|
||||||
|
Loading…
x
Reference in New Issue
Block a user