aboutsummaryrefslogtreecommitdiffstats
path: root/net/quagga
diff options
context:
space:
mode:
authormiwi <miwi@FreeBSD.org>2006-11-09 07:07:29 +0800
committermiwi <miwi@FreeBSD.org>2006-11-09 07:07:29 +0800
commitb58f08ee3cd48393c37f14f359d32fa38d1e4803 (patch)
tree8103dfca106c80a665eb881d7595d5a76aaf477e /net/quagga
parentaf57ff7492edd60ff95f3c10b2d4fef30007a090 (diff)
downloadfreebsd-ports-gnome-b58f08ee3cd48393c37f14f359d32fa38d1e4803.tar.gz
freebsd-ports-gnome-b58f08ee3cd48393c37f14f359d32fa38d1e4803.tar.zst
freebsd-ports-gnome-b58f08ee3cd48393c37f14f359d32fa38d1e4803.zip
From Changelog:
2006-08-28 Andy Gay * ospf_packet.c: (ospf_make_db_desc) Assert added with More-bit fixes does not hold up with addition of Ogier DB-Exchange optimisation, which can empty the db-summary list in between sent DD packets. Remove assert, update More-bit always when in Exchange. PR: ports/105279 Submitted by: Boris Kovalenko <boris@tagnet.ru> (maintainer)
Diffstat (limited to 'net/quagga')
-rw-r--r--net/quagga/Makefile1
-rw-r--r--net/quagga/files/patch-ospfd-ospf_packet.c51
2 files changed, 52 insertions, 0 deletions
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 0fcf7013abd1..4b863650ecf5 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -7,6 +7,7 @@
PORTNAME= quagga
PORTVERSION= 0.99.5
+PORTREVISION= 1
CATEGORIES= net ipv6
MASTER_SITES= http://quagga.net/download/ \
http://www.ru.quagga.net/download/ \
diff --git a/net/quagga/files/patch-ospfd-ospf_packet.c b/net/quagga/files/patch-ospfd-ospf_packet.c
new file mode 100644
index 000000000000..a31dfd2b64db
--- /dev/null
+++ b/net/quagga/files/patch-ospfd-ospf_packet.c
@@ -0,0 +1,51 @@
+--- ospfd/ospf_packet.c.orig
++++ ospfd/ospf_packet.c
+@@ -2712,25 +2712,9 @@ ospf_make_db_desc (struct ospf_interface
+ /* Set DD Sequence Number. */
+ stream_putl (s, nbr->dd_seqnum);
+
++ /* shortcut unneeded walk of (empty) summary LSDBs */
+ if (ospf_db_summary_isempty (nbr))
+- {
+- /* Sanity check:
+- *
+- * Must be here either:
+- * - Initial DBD (ospf_nsm.c)
+- * - M must be set
+- * or
+- * - finishing Exchange, and DB-Summary list empty
+- * - from ospf_db_desc_proc()
+- * - M must not be set
+- */
+- if (nbr->state >= NSM_Exchange)
+- assert (!IS_SET_DD_M(nbr->dd_flags));
+- else
+- assert (IS_SET_DD_M(nbr->dd_flags));
+-
+- return length;
+- }
++ goto empty;
+
+ /* Describe LSA Header from Database Summary List. */
+ lsdb = &nbr->db_sum;
+@@ -2785,9 +2769,17 @@ ospf_make_db_desc (struct ospf_interface
+ /* Update 'More' bit */
+ if (ospf_db_summary_isempty (nbr))
+ {
+- UNSET_FLAG (nbr->dd_flags, OSPF_DD_FLAG_M);
+- /* Rewrite DD flags */
+- stream_putc_at (s, pp, nbr->dd_flags);
++empty:
++ if (nbr->state >= NSM_Exchange)
++ {
++ UNSET_FLAG (nbr->dd_flags, OSPF_DD_FLAG_M);
++ /* Rewrite DD flags */
++ stream_putc_at (s, pp, nbr->dd_flags);
++ }
++ else
++ {
++ assert (IS_SET_DD_M(nbr->dd_flags));
++ }
+ }
+ return length;
+ }