Browse Source

+ fixed bug #400: adjusted rtread_sysctl.c:route_read()

Denis Ovsienko 13 years ago
parent
commit
882968e0a2
2 changed files with 8 additions and 0 deletions
  1. 6 0
      zebra/ChangeLog
  2. 2 0
      zebra/rtread_sysctl.c

+ 6 - 0
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

+ 2 - 0
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);
     }