summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpilot <pilot>2007-09-06 14:34:41 +0000
committerpilot <pilot>2007-09-06 14:34:41 +0000
commite8eb297f83408c02fbe4f193f0da4b16a83bb26a (patch)
treec85dde418fc1ca94b54f1a9928642fd54e7fc061
parenta9462722233241d99256d98d5c8ae33fb906e1f8 (diff)
downloadquagga-e8eb297f83408c02fbe4f193f0da4b16a83bb26a.tar.bz2
quagga-e8eb297f83408c02fbe4f193f0da4b16a83bb26a.tar.xz
+ fixed bug #400: adjusted rtread_sysctl.c:route_read()
-rw-r--r--zebra/ChangeLog6
-rw-r--r--zebra/rtread_sysctl.c2
2 files changed, 8 insertions, 0 deletions
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index fa90cd14..646027b9 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,9 @@
+2007-09-06 Denis Ovsienko
+
+ * rtread_sysctl.c: (route_read) Set RTF_DONE on the routing
+ messages when fetching initial kernel FIB, so rtm_read()
+ doesn't skip them.
+
2007-08-21 Denis Ovsienko
* ioctl_solaris.c: (if_get_mtu) Don't break things if either
diff --git a/zebra/rtread_sysctl.c b/zebra/rtread_sysctl.c
index 88527b37..b8f5bde7 100644
--- a/zebra/rtread_sysctl.c
+++ b/zebra/rtread_sysctl.c
@@ -68,6 +68,8 @@ route_read (void)
for (end = buf + bufsiz; buf < end; buf += rtm->rtm_msglen)
{
rtm = (struct rt_msghdr *) buf;
+ /* We must set RTF_DONE here, so rtm_read() doesn't ignore the message. */
+ SET_FLAG (rtm->rtm_flags, RTF_DONE);
rtm_read (rtm);
}