diff options
author | miwi <miwi@FreeBSD.org> | 2006-11-09 07:07:29 +0800 |
---|---|---|
committer | miwi <miwi@FreeBSD.org> | 2006-11-09 07:07:29 +0800 |
commit | b58f08ee3cd48393c37f14f359d32fa38d1e4803 (patch) | |
tree | 8103dfca106c80a665eb881d7595d5a76aaf477e /net/quagga | |
parent | af57ff7492edd60ff95f3c10b2d4fef30007a090 (diff) | |
download | freebsd-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/Makefile | 1 | ||||
-rw-r--r-- | net/quagga/files/patch-ospfd-ospf_packet.c | 51 |
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; + } |