]> git.puffer.fish Git - mirror/frr.git/commitdiff
[zebra] Fix interface metric bug on BSD
authorPaul Jakma <paul.jakma@sun.com>
Tue, 6 Mar 2007 13:43:05 +0000 (13:43 +0000)
committerPaul Jakma <paul.jakma@sun.com>
Tue, 6 Mar 2007 13:43:05 +0000 (13:43 +0000)
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.

zebra/ChangeLog
zebra/kernel_socket.c

index 7bdec921820c765873b96966e5793716d5a4cf59..97dcd5f5ae1758b1fcd93278176cc0626872c704 100644 (file)
@@ -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,
index ac06566a72d81db3083c3a7a18ce4376dfc4d37b..5281236769044245cce937d42316d82598520a98 100644 (file)
@@ -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))
     {