aboutsummaryrefslogtreecommitdiff
path: root/net/quagga
diff options
context:
space:
mode:
authorPav Lucistnik <pav@FreeBSD.org>2005-03-15 22:22:45 +0000
committerPav Lucistnik <pav@FreeBSD.org>2005-03-15 22:22:45 +0000
commit0ccda62aceec1af97d6136bcbb410f4694b000c0 (patch)
tree39501a211e5a0155ae07e94ccbc978b7972a634e /net/quagga
parent59aeb020703bff46c6bfc66f8031f5e8edba92b9 (diff)
downloadports-0ccda62aceec1af97d6136bcbb410f4694b000c0.tar.gz
ports-0ccda62aceec1af97d6136bcbb410f4694b000c0.zip
- patch for annoing OSPF infinite loop when time goes back
PR: ports/78855 Submitted by: Boris Kovalenko <boris@tagnet.ru> (maintainer)
Notes
Notes: svn path=/head/; revision=131345
Diffstat (limited to 'net/quagga')
-rw-r--r--net/quagga/Makefile6
-rw-r--r--net/quagga/files/patch-ospfd::ospf_lsa.c37
2 files changed, 38 insertions, 5 deletions
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 87b6d14502e7..747cdb3361be 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 000000000000..6b63a0b69552
--- /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)