mirror of
https://git.freebsd.org/ports.git
synced 2025-06-07 13:50:38 -04:00
38 lines
1.4 KiB
C
38 lines
1.4 KiB
C
--- ./ospfd/ospf_lsa.c.orig 2005-05-26 11:40:19.000000000 -0500
|
|
+++ ./ospfd/ospf_lsa.c 2014-04-09 15:16:46.751621976 -0500
|
|
@@ -3247,6 +3247,7 @@
|
|
listnode node;
|
|
struct ospf *ospf = THREAD_ARG (t);
|
|
int i;
|
|
+ time_t ct;
|
|
list lsa_to_refresh = list_new ();
|
|
|
|
if (IS_DEBUG_OSPF (lsa, LSA_REFRESH))
|
|
@@ -3254,16 +3255,26 @@
|
|
|
|
|
|
i = ospf->lsa_refresh_queue.index;
|
|
+
|
|
+ if ((ct = time(NULL)) < ospf->lsa_refresher_started) {
|
|
+ zlog_info ("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_info ("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_info ("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)
|
|
{
|