aboutsummaryrefslogtreecommitdiff
path: root/net
diff options
context:
space:
mode:
authorMartin Wilke <miwi@FreeBSD.org>2006-11-08 23:07:29 +0000
committerMartin Wilke <miwi@FreeBSD.org>2006-11-08 23:07:29 +0000
commit76cd4a8426bbc090699eb73d823712e3e7ae4efc (patch)
tree8a8ac61daac0918bb890e91d1880c558fdbee7c7 /net
parenteed17ecdff898bcbc8134d575bf1e208ec8f90df (diff)
downloadports-76cd4a8426bbc090699eb73d823712e3e7ae4efc.tar.gz
ports-76cd4a8426bbc090699eb73d823712e3e7ae4efc.zip
Notes
Diffstat (limited to 'net')
-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;
+ }