aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net/quagga/Makefile2
-rw-r--r--net/quagga/files/patch-ospf6d-ospf6_lsa.c28
2 files changed, 29 insertions, 1 deletions
diff --git a/net/quagga/Makefile b/net/quagga/Makefile
index 90df7c0f5318..97950688f2e6 100644
--- a/net/quagga/Makefile
+++ b/net/quagga/Makefile
@@ -7,7 +7,7 @@
PORTNAME= quagga
PORTVERSION= 0.99.14
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= net ipv6
MASTER_SITES= http://quagga.net/download/ \
http://www.ru.quagga.net/download/ \
diff --git a/net/quagga/files/patch-ospf6d-ospf6_lsa.c b/net/quagga/files/patch-ospf6d-ospf6_lsa.c
new file mode 100644
index 000000000000..82ea9693425b
--- /dev/null
+++ b/net/quagga/files/patch-ospf6d-ospf6_lsa.c
@@ -0,0 +1,28 @@
+--- ospf6d/ospf6_lsa.c (revision 21)
++++ ospf6d/ospf6_lsa.c (working copy)
+@@ -207,9 +207,11 @@
+ zlog_warn ("LSA: quagga_gettime failed, may fail LSA AGEs: %s",
+ safe_strerror (errno));
+
+- if (lsa->header->age >= htons (MAXAGE))
++ if (ntohs (lsa->header->age) >= MAXAGE)
+ {
+- /* LSA may have been prematurely aged */
++ /* ospf6_lsa_premature_aging () sets age to MAXAGE; when using
++ relative time, we cannot compare against lsa birth time, so
++ we catch this special case here. */
+ lsa->header->age = htons (MAXAGE);
+ return MAXAGE;
+ }
+@@ -245,11 +247,6 @@
+ THREAD_OFF (lsa->expire);
+ THREAD_OFF (lsa->refresh);
+
+- /*
+- * The below technique to age out LSA does not work when using relative time
+- *
+- memset (&lsa->birth, 0, sizeof (struct timeval));
+- */
+ lsa->header->age = htons (MAXAGE);
+ thread_execute (master, ospf6_lsa_expire, lsa, 0);
+ }