summaryrefslogtreecommitdiffstats
path: root/zebra/kernel_socket.c
diff options
context:
space:
mode:
authorpaul <paul>2007-03-06 13:43:05 +0000
committerpaul <paul>2007-03-06 13:43:05 +0000
commit464db838b08b20da9837511a4552b51d1701f49e (patch)
treea91def87faf4cec9f2cb3ce83ac6d244dcb20cf2 /zebra/kernel_socket.c
parentaa9f50910f2a071738fd8a31654c4cf0825ff2a8 (diff)
downloadquagga-464db838b08b20da9837511a4552b51d1701f49e.tar.bz2
quagga-464db838b08b20da9837511a4552b51d1701f49e.tar.xz
[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.
Diffstat (limited to 'zebra/kernel_socket.c')
-rw-r--r--zebra/kernel_socket.c9
1 files changed, 8 insertions, 1 deletions
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))
{