[pkg-dhcp-devel] Bug#521024: isc-dhcp-client: patch fixing the issue

Peter Marschall peter at adpm.de
Fri Aug 26 16:11:20 UTC 2011


Package: isc-dhcp-client
Version: 4.1.1-P1-17
Followup-For: Bug #521024

The attached patch should fix the issue.

-- System Information:
Debian Release: wheezy/sid
  APT prefers testing
  APT policy: (990, 'testing'), (500, 'unstable'), (500, 'stable'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 3.0.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages isc-dhcp-client depends on:
ii  debianutils                  4.0.2       Miscellaneous utilities specific t
ii  iproute                      20110629-1  networking and traffic control too
ii  isc-dhcp-common              4.1.1-P1-17 common files used by all the isc-d
ii  libc6                        2.13-16     Embedded GNU C Library: Shared lib

isc-dhcp-client recommends no packages.

Versions of packages isc-dhcp-client suggests:
pn  avahi-autoipd                 <none>     (no description available)
pn  resolvconf                    <none>     (no description available)

-- Configuration Files:
/etc/dhcp/dhclient.conf changed [not included]

-- no debconf information

-- debsums errors found:
debsums: changed file /sbin/dhclient-script (from isc-dhcp-client package)
-------------- next part --------------
>From 475102d0cdf0972e4a5c4b7825312371a0c3c626 Mon Sep 17 00:00:00 2001
From: Peter Marschall <peter at adpm.de>
Date: Fri, 24 Jun 2011 09:29:29 +0200
Subject: [PATCH] rfc3442-classless-routes.*: take care of link-local routes

According to RFC 3442, the router address 0.0.0.0 in the DHCP
parameter for the classless routes indicates a link-local route.
Do not add a gateway for this type of routes.

---
 debian/rfc3442-classless-routes.kfreebsd |   11 +++++++++--
 debian/rfc3442-classless-routes.linux    |    8 +++++++-
 2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/debian/rfc3442-classless-routes.kfreebsd b/debian/rfc3442-classless-routes.kfreebsd
index 6e14946..985f8af 100644
--- a/debian/rfc3442-classless-routes.kfreebsd
+++ b/debian/rfc3442-classless-routes.kfreebsd
@@ -16,6 +16,7 @@ if [ "$RUN" = "yes" ]; then
 
 			while [ $# -gt 0 ]; do
 				net_length=$1
+				via_arg="-interface ${interface}"
 
 				case $net_length in
 					32|31|30|29|28|27|26|25)
@@ -48,10 +49,16 @@ if [ "$RUN" = "yes" ]; then
 						;;
 				esac
 
+				# take care of link-local routes
+				if [ "${gateway}" != '0.0.0.0' ]; then
+					via_arg="gw ${gateway}"
+				fi
+
+				# set route (distinguish between host & net routes)
 				if [ "$net_length" -eq 32 ]; then
-					/sbin/route add -host "${net_address}" gw "${gateway}"
+					/sbin/route add -host "${net_address}" "${via_arg}"
 				else
-					/sbin/route add -net "${net_address}/${net_length}" gw "${gateway}"
+					/sbin/route add -net "${net_address}/${net_length}" "${via_arg}"
 				fi
 			done
 		fi
diff --git a/debian/rfc3442-classless-routes.linux b/debian/rfc3442-classless-routes.linux
index 18ce0c3..462fb46 100644
--- a/debian/rfc3442-classless-routes.linux
+++ b/debian/rfc3442-classless-routes.linux
@@ -16,6 +16,7 @@ if [ "$RUN" = "yes" ]; then
 
 			while [ $# -gt 0 ]; do
 				net_length=$1
+				via_arg=''
 
 				case $net_length in
 					32|31|30|29|28|27|26|25)
@@ -48,9 +49,14 @@ if [ "$RUN" = "yes" ]; then
 						;;
 				esac
 
+				# take care of link-local routes
+				if [ "${gateway}" != '0.0.0.0' ]; then
+					via_arg="via ${gateway}"
+				fi
+
 				# set route (ip detects host routes automatically)
 				ip -4 route add "${net_address}/${net_length}" \
-					via "${gateway}" dev "${interface}" >/dev/null 2>&1
+					${via_arg} dev "${interface}" >/dev/null 2>&1
 			done
 		fi
 	fi
-- 
1.7.5.4



More information about the pkg-dhcp-devel mailing list