diff options
Diffstat (limited to 'net/quagga/files/patch-cvs-2-ribcode')
-rw-r--r-- | net/quagga/files/patch-cvs-2-ribcode | 46 |
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. */ |