2
0
mirror of https://gitlab.isc.org/isc-projects/dhcp synced 2025-08-22 09:57:20 +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
make devel command in doc directory. [ISC-Bugs #32767]
- Update client script for use with openwrt.
[ISC-Bugs #29843]
Changes since 4.2.4
- Correct code to calculate timing values in client to compare

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,5 +1,8 @@
#!/bin/sh
# 'ip' just looks too weird. /sbin/ip looks less weird.
ip=/usr/sbin/ip
make_resolv_conf() {
if [ x"$new_domain_name_servers" != x ]; then
cat /dev/null > /etc/resolv.conf.dhclient
@ -30,7 +33,7 @@ make_resolv_conf() {
case $nameserver in
fe80:*) zone_id="%$interface";;
FE80:*) zone_id="%$interface";;
*) zone_id='';;
*) zone_id="";;
esac
echo nameserver ${nameserver}$zone_id >> /etc/resolv.conf.dhclient6
done
@ -39,7 +42,7 @@ make_resolv_conf() {
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_status=$1
if [ -f /etc/dhclient-exit-hooks ]; then
@ -73,9 +76,9 @@ fi
if [ x$alias_subnet_mask != x ]; then
alias_subnet_arg="netmask $alias_subnet_mask"
fi
if [ x$new_interface_mtu != x ]; then
mtu_arg="mtu $new_interface_mtu"
fi
if [ x$new_interface_mtu != x ]; then
mtu_arg="mtu $new_interface_mtu"
fi
if [ x$IF_METRIC != x ]; then
metric_arg="metric $IF_METRIC"
fi
@ -101,7 +104,7 @@ fi
if [ x$reason = xARPCHECK ] || [ x$reason = xARPSEND ]; then
exit_with_hooks 0
fi
if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
[ x$reason = xREBIND ] || [ x$reason = xREBOOT ]; then
current_hostname=`hostname`
@ -112,13 +115,14 @@ if [ x$reason = xBOUND ] || [ x$reason = xRENEW ] || \
hostname $new_host_name
fi
fi
if [ x$old_ip_address != x ] && [ x$alias_ip_address != x ] && \
[ x$alias_ip_address != x$old_ip_address ]; then
# Possible new alias. Remove old alias.
ifconfig $interface:0- 0.0.0.0
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,
# and clear the ARP cache.
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
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
if [ "x$new_subnet_mask" = "x255.255.255.255" ] ; then
route add -host $router dev $interface
fi
route add default gw $router
route add default gw $router $metric_arg dev $interface
done
else
# we haven't changed the address, have we changed other options
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
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
route add default gw $router $metric_arg dev $interface
done
fi
fi
@ -184,7 +188,7 @@ if [ x$reason = xTIMEOUT ]; then
ifconfig $interface:0- 0.0.0.0
fi
ifconfig $interface $new_ip_address $new_subnet_arg \
$new_broadcast_arg $mtu_arg $metric_arg
$new_broadcast_arg $mtu_arg
set $new_routers
if ping -q -c 1 $1; then
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
route add -host $router dev $interface
fi
route add default gw $router
route add default gw $router $metric_arg dev $interface
done
make_resolv_conf
exit_with_hooks 0
@ -211,10 +215,10 @@ fi
if [ x$reason = xPREINIT6 ]; then
# Ensure interface is up.
ifconfig ${interface} up
${ip} link set ${interface} up
# 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
fi
@ -230,7 +234,8 @@ if [ x$reason = xBOUND6 ]; then
exit_with_hooks 2;
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.
make_resolv_conf
@ -243,7 +248,8 @@ if [ x$reason = xRENEW6 ] || [ x$reason = xREBIND6 ]; then
exit_with_hooks 2;
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.
@ -257,11 +263,12 @@ if [ x$reason = xRENEW6 ] || [ x$reason = xREBIND6 ]; then
fi
if [ x$reason = xDEPREF6 ]; then
if [ x${new_ip6_address} = x ] ; then
if [ x${new_ip6_prefixlen} = x ] ; then
exit_with_hooks 2;
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
fi
@ -271,7 +278,8 @@ if [ x$reason = xEXPIRE6 -o x$reason = xRELEASE6 -o x$reason = xSTOP6 ]; then
exit_with_hooks 2;
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
fi