diff options
author | paul <paul> | 2007-04-10 19:24:45 +0000 |
---|---|---|
committer | paul <paul> | 2007-04-10 19:24:45 +0000 |
commit | de0b2463b8dd54d9bbe290568b8c98f1fc581018 (patch) | |
tree | f031d30843d49eee522e8d333f61c763be612557 /zebra/redistribute.c | |
parent | fa5fca1b0f3cf1f8d3678f7a134377e30c48e839 (diff) | |
download | quagga-de0b2463b8dd54d9bbe290568b8c98f1fc581018.tar.bz2 quagga-de0b2463b8dd54d9bbe290568b8c98f1fc581018.tar.xz |
[zebra] Bug #351: Don't redistribute routes to ipv4 link-local prefixes
2007-04-07 Paul Jakma <paul.jakma@sun.com>
* lib/prefix.h: Add define to match IPv4 Link-Local addresses
* zebra/redistribute.c: (zebra_check_addr) Don't redistribute routes
to IPv4 link-local prefixes, fixes bug #351.
* zebra/redistribute.h: Export zebra_check_addr.
* zebra/router-id.c: (router_id_bad_address) re-use zebra_check_addr
rather than implementing similar logic.
Diffstat (limited to 'zebra/redistribute.c')
-rw-r--r-- | zebra/redistribute.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/zebra/redistribute.c b/zebra/redistribute.c index 677e6f90..b7bd5674 100644 --- a/zebra/redistribute.c +++ b/zebra/redistribute.c @@ -40,7 +40,7 @@ /* master zebra server structure */ extern struct zebra_t zebrad; -static int +int zebra_check_addr (struct prefix *p) { if (p->family == AF_INET) @@ -50,7 +50,9 @@ zebra_check_addr (struct prefix *p) addr = p->u.prefix4.s_addr; addr = ntohl (addr); - if (IPV4_NET127 (addr) || IN_CLASSD (addr)) + if (IPV4_NET127 (addr) + || IN_CLASSD (addr) + || IPV4_LINKLOCAL(addr)) return 0; } #ifdef HAVE_IPV6 |