summaryrefslogtreecommitdiff
path: root/net/quagga/files/patch-cvs-2-ribcode
diff options
context:
space:
mode:
Diffstat (limited to 'net/quagga/files/patch-cvs-2-ribcode')
-rw-r--r--net/quagga/files/patch-cvs-2-ribcode46
1 files changed, 46 insertions, 0 deletions
diff --git a/net/quagga/files/patch-cvs-2-ribcode b/net/quagga/files/patch-cvs-2-ribcode
new file mode 100644
index 000000000000..bdf05a47561b
--- /dev/null
+++ b/net/quagga/files/patch-cvs-2-ribcode
@@ -0,0 +1,46 @@
+--- zebra/rt_socket.c.orig 2007-05-10 00:59:35.000000000 +0400
++++ zebra/rt_socket.c 2007-07-31 15:58:18.000000000 +0400
+@@ -99,9 +99,7 @@
+ if ((cmd == RTM_ADD
+ && CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_ACTIVE))
+ || (cmd == RTM_DELETE
+-#if 0
+ && CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB)
+-#endif
+ ))
+ {
+ if (CHECK_FLAG (nexthop->flags, NEXTHOP_FLAG_RECURSIVE))
+@@ -138,9 +136,6 @@
+ }
+ }
+
+- if (cmd == RTM_ADD)
+- SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
+-
+ if (gate && p->prefixlen == 32)
+ mask = NULL;
+ else
+@@ -152,7 +147,6 @@
+ #endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
+ mask = &sin_mask;
+ }
+- }
+
+ error = rtm_write (cmd,
+ (union sockunion *)&sin_dest,
+@@ -169,8 +163,13 @@
+ nexthop_num, error);
+ }
+ #endif
+-
+- nexthop_num++;
++ if (error == 0)
++ {
++ nexthop_num++;
++ if (cmd == RTM_ADD)
++ SET_FLAG (nexthop->flags, NEXTHOP_FLAG_FIB);
++ }
++ }
+ }
+
+ /* If there is no useful nexthop then return. */