diff options
author | Paul Jakma <paul.jakma@sun.com> | 2007-03-06 13:43:05 +0000 |
---|---|---|
committer | Paul Jakma <paul.jakma@sun.com> | 2007-03-06 13:43:05 +0000 |
commit | 6502208c3217e52e693146e6b72e76fd76982a51 (patch) | |
tree | 36a14ca536e7ce4b2d89267ab223fe9ed570ec82 | |
parent | c32d28b765e936acb8695f73a119d73cacff2610 (diff) |
[zebra] Fix interface metric bug on BSD
2007-03-06 Paul Jakma <paul.jakma@sun.com>
* kernel_socket.c: (ifam_read) Do not update interface metric on
receipt of NEW/DEL ADDR messages, bogus as: a) some systems
dont include iface metric for address events b) we didn't
update clients either. Initial diagnosis by Eugene Grosbein.
-rw-r--r-- | zebra/ChangeLog | 7 | ||||
-rw-r--r-- | zebra/kernel_socket.c | 9 |
2 files changed, 15 insertions, 1 deletions
diff --git a/zebra/ChangeLog b/zebra/ChangeLog index 7bdec921..97dcd5f5 100644 --- a/zebra/ChangeLog +++ b/zebra/ChangeLog @@ -1,3 +1,10 @@ +2007-03-06 Paul Jakma <paul.jakma@sun.com> + + * kernel_socket.c: (ifam_read) Do not update interface metric on + receipt of NEW/DEL ADDR messages, bogus as: a) some systems + dont include iface metric for address events b) we didn't + update clients either. Initial diagnosis by Eugene Grosbein. + 2007-02-26 Robert Olsson <Robert.Olsson@data.slu.se> * irdp_main.c: (irdp_send_thread) Skip non-AF_INET addresses, diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c index ac06566a..52812367 100644 --- a/zebra/kernel_socket.c +++ b/zebra/kernel_socket.c @@ -585,8 +585,15 @@ ifam_read (struct ifa_msghdr *ifam) if (ifnlen && strncmp (ifp->name, ifname, INTERFACE_NAMSIZ)) isalias = 1; +#if 0 + /* it might seem cute to grab the interface metric here, however + * we're processing an address update message, and so some systems + * (e.g. FBSD) dont bother to fill in ifam_metric. Disabled, but left + * in deliberately, as comment. + */ ifp->metric = ifam->ifam_metric; - +#endif + /* Add connected address. */ switch (sockunion_family (&addr)) { |