2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-22 18:07:25 +00:00

-n [master]

fixes in openwrt script from the lwds-lite lab as well
   as some cosmetic changes and updating other scripts to
   use two double quotes instead of two single quotes for
   empty zone ids.
   [rt29843]
This commit is contained in:
Shawn Routhier 2013-08-30 13:25:12 -07:00
parent 3cb6f9bb3d
commit f6dc164f6b
7 changed files with 39 additions and 28 deletions

View File

@ -111,6 +111,9 @@ work on other platforms. Please report any problems and suggested fixes to
the release tarballs. To generate this documentation, please use the release tarballs. To generate this documentation, please use
make devel command in doc directory. [ISC-Bugs #32767] make devel command in doc directory. [ISC-Bugs #32767]
- Update client script for use with openwrt.
[ISC-Bugs #29843]
Changes since 4.2.4 Changes since 4.2.4
- Correct code to calculate timing values in client to compare - Correct code to calculate timing values in client to compare

View File

@ -29,7 +29,7 @@ make_resolv_conf() {
case $nameserver in case $nameserver in
fe80:*) zone_id="%$interface";; fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";; FE80:*) zone_id="%$interface";;
*) zone_id='';; *) zone_id="";;
esac esac
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
done done

View File

@ -64,7 +64,7 @@ make_resolv_conf() {
case $nameserver in case $nameserver in
fe80:*) zone_id="%$interface";; fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";; FE80:*) zone_id="%$interface";;
*) zone_id='';; *) zone_id="";;
esac esac
( echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 ) ( echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 )
exit_status=$? exit_status=$?

View File

@ -34,7 +34,7 @@ make_resolv_conf() {
case $nameserver in case $nameserver in
fe80:*) zone_id="%$interface";; fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";; FE80:*) zone_id="%$interface";;
*) zone_id='';; *) zone_id="";;
esac esac
( echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 ) ( echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 )
exit_status=$? exit_status=$?

View File

@ -29,7 +29,7 @@ make_resolv_conf() {
case $nameserver in case $nameserver in
fe80:*) zone_id="%$interface";; fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";; FE80:*) zone_id="%$interface";;
*) zone_id='';; *) zone_id="";;
esac esac
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
done done

View File

@ -29,7 +29,7 @@ make_resolv_conf() {
case $nameserver in case $nameserver in
fe80:*) zone_id="%$interface";; fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";; FE80:*) zone_id="%$interface";;
*) zone_id='';; *) zone_id="";;
esac esac
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
done done

View File

@ -1,5 +1,8 @@
#!/bin/sh #!/bin/sh
# 'ip' just looks too weird. /sbin/ip looks less weird.
ip=/usr/sbin/ip
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
@ -30,7 +33,7 @@ make_resolv_conf() {
case $nameserver in case $nameserver in
fe80:*) zone_id="%$interface";; fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";; FE80:*) zone_id="%$interface";;
*) zone_id='';; *) zone_id="";;
esac esac
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6 echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
done done
@ -39,7 +42,7 @@ make_resolv_conf() {
fi fi
} }
# Must be used on exit. Invokes the local dhcp client exit hooks, if any. # Must be used on exit. Invokes the local dhcp client exit hooks, if any.
exit_with_hooks() { exit_with_hooks() {
exit_status=$1 exit_status=$1
if [ -f /etc/dhclient-exit-hooks ]; then if [ -f /etc/dhclient-exit-hooks ]; then
@ -73,9 +76,9 @@ fi
if [ x$alias_subnet_mask != x ]; then if [ x$alias_subnet_mask != x ]; then
alias_subnet_arg="netmask $alias_subnet_mask" alias_subnet_arg="netmask $alias_subnet_mask"
fi fi
if [ x$new_interface_mtu != x ]; then if [ x$new_interface_mtu != x ]; then
mtu_arg="mtu $new_interface_mtu" mtu_arg="mtu $new_interface_mtu"
fi fi
if [ x$IF_METRIC != x ]; then if [ x$IF_METRIC != x ]; then
metric_arg="metric $IF_METRIC" metric_arg="metric $IF_METRIC"
fi fi
@ -101,7 +104,7 @@ fi
if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then
exit_with_hooks 0 exit_with_hooks 0
fi fi
if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
[ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then [ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then
current_hostname=`hostname` current_hostname=`hostname`
@ -112,13 +115,14 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
hostname $new_host_name hostname $new_host_name
fi fi
fi fi
if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \ if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
[ x$alias_ip_address != x$old_ip_address ]; then [ x$alias_ip_address != x$old_ip_address ]; then
# Possible new alias. Remove old alias. # Possible new alias. Remove old alias.
ifconfig $interface:0- 0.0.0.0 ifconfig $interface:0- 0.0.0.0
fi fi
if [ x$old_ip_address != x ] && [ x$old_ip_address != x$new_ip_address ]; then if [ x$old_ip_address != x ] && \
[ x$old_ip_address != x$new_ip_address ]; then
# IP address changed. Bringing down the interface will delete all routes, # IP address changed. Bringing down the interface will delete all routes,
# and clear the ARP cache. # and clear the ARP cache.
ifconfig $interface 0.0.0.0 down ifconfig $interface 0.0.0.0 down
@ -128,27 +132,27 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
[ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then [ x$reason = xBOUND ] || [ x$reason = xREBOOT ]; then
ifconfig $interface $new_ip_address $new_subnet_arg \ ifconfig $interface $new_ip_address $new_subnet_arg \
$new_broadcast_arg $mtu_arg $metric_arg $new_broadcast_arg $mtu_arg
for router in $new_routers; do for router in $new_routers; do
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
route add -host $router dev $interface route add -host $router dev $interface
fi fi
route add default gw $router route add default gw $router $metric_arg dev $interface
done done
else else
# we haven't changed the address, have we changed other options # we haven't changed the address, have we changed other options
# that we wish to update? # that we wish to update?
if [ x$new_routers != x ] && [ x$new_routers != x$old_routers ] ; then if [ x$new_routers != x ] && [ x$new_routers != x$old_routers ] ; then
# if we've changed routers delete the old and add the new. # if we've changed routers delete the old and add the new.
$LOGGER "New Routers: $new_routers" $LOGGER "New Routers: $new_routers"
for router in $old_routers; do for router in $old_routers; do
route delete default $router route del default gw $router
done done
for router in $new_routers; do for router in $new_routers; do
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
route add -host $router dev $interface route add -host $router dev $interface
fi fi
route add default gw $router route add default gw $router $metric_arg dev $interface
done done
fi fi
fi fi
@ -184,7 +188,7 @@ if [ x$reason = xTIMEOUT ]; then
ifconfig $interface:0- 0.0.0.0 ifconfig $interface:0- 0.0.0.0
fi fi
ifconfig $interface $new_ip_address $new_subnet_arg \ ifconfig $interface $new_ip_address $new_subnet_arg \
$new_broadcast_arg $mtu_arg $metric_arg $new_broadcast_arg $mtu_arg
set $new_routers set $new_routers
if ping -q -c 1 $1; then if ping -q -c 1 $1; then
if [ x$new_ip_address != x$alias_ip_address ] && \ if [ x$new_ip_address != x$alias_ip_address ] && \
@ -196,7 +200,7 @@ if [ x$reason = xTIMEOUT ]; then
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
route add -host $router dev $interface route add -host $router dev $interface
fi fi
route add default gw $router route add default gw $router $metric_arg dev $interface
done done
make_resolv_conf make_resolv_conf
exit_with_hooks 0 exit_with_hooks 0
@ -211,10 +215,10 @@ fi
if [ x$reason = xPREINIT6 ]; then if [ x$reason = xPREINIT6 ]; then
# Ensure interface is up. # Ensure interface is up.
ifconfig ${interface} up ${ip} link set ${interface} up
# Remove any stale addresses from aborted clients. # Remove any stale addresses from aborted clients.
ip -f inet6 addr flush dev ${interface} scope global ${ip} -f inet6 addr flush dev ${interface} scope global permanent
exit_with_hooks 0 exit_with_hooks 0
fi fi
@ -230,7 +234,8 @@ if [ x$reason = xBOUND6 ]; then
exit_with_hooks 2; exit_with_hooks 2;
fi fi
ifconfig ${interface} inet6 ${new_ip6_address}/${new_ip6_prefixlen} alias ${ip} -f inet6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
dev ${interface} scope global
# Check for nameserver options. # Check for nameserver options.
make_resolv_conf make_resolv_conf
@ -243,7 +248,8 @@ if [ x$reason = xRENEW6 ] || [ x$reason = xREBIND6 ]; then
exit_with_hooks 2; exit_with_hooks 2;
fi fi
ifconfig ${interface} inet6 ${new_ip6_address}/${new_ip6_prefixlen} alias ${ip} -f inet6 addr add ${new_ip6_address}/${new_ip6_prefixlen} \
dev ${interface} scope global
# Make sure nothing has moved around on us. # Make sure nothing has moved around on us.
@ -257,11 +263,12 @@ if [ x$reason = xRENEW6 ] || [ x$reason = xREBIND6 ]; then
fi fi
if [ x$reason = xDEPREF6 ]; then if [ x$reason = xDEPREF6 ]; then
if [ x${new_ip6_address} = x ] ; then if [ x${new_ip6_prefixlen} = x ] ; then
exit_with_hooks 2; exit_with_hooks 2;
fi fi
ifconfig ${interface} inet6 ${new_ip6_address} deprecated ${ip} -f inet6 addr change ${new_ip6_address}/${new_ip6_prefixlen} \
dev ${interface} scope global preferred_lft 0
exit_with_hooks 0 exit_with_hooks 0
fi fi
@ -271,7 +278,8 @@ if [ x$reason = xEXPIRE6 -o x$reason = xRELEASE6 -o x$reason = xSTOP6 ]; then
exit_with_hooks 2; exit_with_hooks 2;
fi fi
ifconfig ${interface} inet6 ${old_ip6_address}/${old_ip6_prefixlen} -alias ${ip} -f inet6 addr del ${old_ip6_address}/${old_ip6_prefixlen} \
dev ${interface}
exit_with_hooks 0 exit_with_hooks 0
fi fi