tag 391040 + patch stop Andre Tomt wrote: > Any hope on getting the fix pushed into Etch? Right now OSPFd is > basically unusable.
If so, this bug should be set to a higher priority to make it release critical. For the time being, I've prepared a NMU patch to apply the fix for this bug. If Christian has no comments or objections over the next few days I'll be happy to upload it. Cheers -- Matt Brown Debian Developer [EMAIL PROTECTED] Mob +64 21 611 544 www.mattb.net.nz
diff -u quagga-0.99.5/debian/changelog quagga-0.99.5/debian/changelog --- quagga-0.99.5/debian/changelog +++ quagga-0.99.5/debian/changelog @@ -1,3 +1,10 @@ +quagga (0.99.5-2.1) unstable; urgency=low + + * Non-maintainer upload. + * Backport CVS fix for an OSPF DD Exchange regression. (Closes: #391040) + + -- Matt Brown <[EMAIL PROTECTED]> Wed, 25 Oct 2006 23:58:37 +1300 + quagga (0.99.5-2) unstable; urgency=medium * Added LSB info section to initscript. only in patch2: unchanged: --- quagga-0.99.5.orig/debian/patches/100_ospfd_ddexchange_regression.dpatch +++ quagga-0.99.5/debian/patches/100_ospfd_ddexchange_regression.dpatch @@ -0,0 +1,76 @@ +#! /bin/sh /usr/share/dpatch/dpatch-run +## 100_ospfd_ddexchange_regression.dpatch by <[EMAIL PROTECTED]> +## +## All lines beginning with `## DP:' are a description of the patch. +## DP: Backport a fix for an OSPF regression introduced in 0.99.5 +## DP: See Debian Bug #391040 and +## DP: http://bugzilla.quagga.net/show_bug.cgi?id=304 +## DP: for details + [EMAIL PROTECTED]@ + +--- a/ospfd/ChangeLog ++++ b/ospfd/ChangeLog +@@ -1,3 +1,11 @@ ++2006-08-28 Andy Gay <[EMAIL PROTECTED]> ++ ++ * 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. ++ + 2006-08-27 J.J. Krabbendam <[EMAIL PROTECTED]> + + * ospfd.c: (ospf_finish_final) default redistribute should be +--- a/ospfd/ospf_packet.c ++++ b/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; + }
signature.asc
Description: OpenPGP digital signature