diff options
author | pav <pav@FreeBSD.org> | 2005-03-15 22:22:45 +0000 |
---|---|---|
committer | pav <pav@FreeBSD.org> | 2005-03-15 22:22:45 +0000 |
commit | bc541a0d490f87b87b90f9ccf4da077756512e59 (patch) | |
tree | 095c7f5bebcd35cc6fefda7e2d597ca17e94c834 /net | |
parent | 434885d5aa07e17bb59b32ed8a302e0f935577bc (diff) | |
download | FreeBSD-ports-bc541a0d490f87b87b90f9ccf4da077756512e59.zip FreeBSD-ports-bc541a0d490f87b87b90f9ccf4da077756512e59.tar.gz |
- patch for annoing OSPF infinite loop when time goes back
PR: ports/78855
Submitted by: Boris Kovalenko <boris@tagnet.ru> (maintainer)
Diffstat (limited to 'net')
-rw-r--r-- | net/quagga/Makefile | 6 | ||||
-rw-r--r-- | net/quagga/files/patch-ospfd::ospf_lsa.c | 37 |
2 files changed, 38 insertions, 5 deletions
diff --git a/net/quagga/Makefile b/net/quagga/Makefile index 87b6d14..747cdb3 100644 --- a/net/quagga/Makefile +++ b/net/quagga/Makefile @@ -7,7 +7,7 @@ PORTNAME= quagga PORTVERSION= 0.98.2 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= net ipv6 MASTER_SITES= http://quagga.net/download/ @@ -39,10 +39,6 @@ OPTIONS= ISISD "Enable experimental ISIS daemon" off \ TCPSOCKETS "Use TCP/IP sockets for protocol daemons" off \ TCPMD5 "Use experimental MD5 patch for BGP" off -.if !defined(BATCH) -SEL_OPTIONS= yes -.endif - .include <bsd.port.pre.mk> CONFIGURE_ARGS+=--includedir=${PREFIX}/include --enable-exampledir=${PREFIX}/share/examples/quagga diff --git a/net/quagga/files/patch-ospfd::ospf_lsa.c b/net/quagga/files/patch-ospfd::ospf_lsa.c new file mode 100644 index 0000000..6b63a0b --- /dev/null +++ b/net/quagga/files/patch-ospfd::ospf_lsa.c @@ -0,0 +1,37 @@ +--- ospfd/ospf_lsa.c.orig Wed Dec 22 19:16:02 2004 ++++ ospfd/ospf_lsa.c Mon Mar 7 12:24:04 2005 +@@ -3665,6 +3665,7 @@ + struct listnode *node; + struct ospf *ospf = THREAD_ARG (t); + int i; ++ time_t ct; + struct list *lsa_to_refresh = list_new (); + + if (IS_DEBUG_OSPF (lsa, LSA_REFRESH)) +@@ -3672,15 +3673,25 @@ + + + i = ospf->lsa_refresh_queue.index; ++ ++ if ((ct = time(NULL)) < ospf->lsa_refresher_started) { ++ zlog_debug ("LSA[Refresh]: ospf_lsa_refresh_walker(): HACK: fixing lsa_refresher_started: %d -> %d", ospf->lsa_refresher_started, ct); ++ ospf->lsa_refresher_started = ct; ++ } + + ospf->lsa_refresh_queue.index = + (ospf->lsa_refresh_queue.index + +- (time (NULL) - ospf->lsa_refresher_started) / OSPF_LSA_REFRESHER_GRANULARITY) ++ (ct - ospf->lsa_refresher_started) / OSPF_LSA_REFRESHER_GRANULARITY) + % OSPF_LSA_REFRESHER_SLOTS; + + if (IS_DEBUG_OSPF (lsa, LSA_REFRESH)) + zlog_debug ("LSA[Refresh]: ospf_lsa_refresh_walker(): next index %d", + ospf->lsa_refresh_queue.index); ++ ++ if (ospf->lsa_refresh_queue.index >= OSPF_LSA_REFRESHER_SLOTS) { ++ zlog_debug ("LSA[Refresh]: ospf_lsa_refresh_walker(): HACK: fixing index: %hu -> 0", ospf->lsa_refresh_queue.index); ++ ospf->lsa_refresh_queue.index = 0; ++ } + + for (;i != ospf->lsa_refresh_queue.index; + i = (i + 1) % OSPF_LSA_REFRESHER_SLOTS) |