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)
>From 475102d0cdf0972e4a5c4b7825312371a0c3c626 Mon Sep 17 00:00:00 2001
From: Peter Marschall <pe...@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

Reply via email to