Commit 2bf59bf4 authored by Ondrej Filip's avatar Ondrej Filip
Browse files

Hotfix to solve an issue with delaying timers reported by Aleksey Chudov.

parent 9d969be5
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -2734,7 +2734,7 @@ other than equally configured BIRD. I have warned you.
	<tag>period <M>number</M>
	  </tag>specifies the number of seconds between periodic updates. Default is 30 seconds. A lower
	  number will mean faster convergence but bigger network
	  load. Do not use values lower than 10.
	  load. Do not use values lower than 12.

	<tag>timeout time <M>number</M>
	  </tag>specifies how old route has to be to be considered unreachable. Default is 4*<cf/period/.
@@ -2764,7 +2764,7 @@ other than equally configured BIRD. I have warned you.
protocol rip MyRIP_test {
        debug all;
        port 1520;
        period 10;
        period 12;
        garbage time 60;
        interface "eth0" { metric 3; mode multicast; };
	interface "eth*" { metric 2; mode broadcast; };
+9 −3
Original line number Diff line number Diff line
@@ -596,8 +596,12 @@ rip_start(struct proto *p)
  init_list( &P->interfaces );
  P->timer = tm_new( p->pool );
  P->timer->data = p;
  P->timer->randomize = 5;
  P->timer->recurrent = (P_CF->period / 6)+1; 
  P->timer->randomize = 2;
  P->timer->recurrent = (P_CF->period / 6) - 1; 
  if (P_CF->period < 12) {
    log(L_WARN "Period %d is too low. So I am using 12 which is the lowest possible value.", P_CF->period);
    P->timer->recurrent = 1;
  }
  P->timer->hook = rip_timer;
  tm_start( P->timer, 5 );
  rif = new_iface(p, NULL, 0, NULL);	/* Initialize dummy interface */
@@ -956,9 +960,11 @@ rip_rte_insert(net *net UNUSED, rte *rte)
static void
rip_rte_remove(net *net UNUSED, rte *rte)
{
  // struct proto *p = rte->attrs->proto;
#ifdef LOCAL_DEBUG
  struct proto *p = rte->attrs->proto;
  CHK_MAGIC;
  DBG( "rip_rte_remove: %p\n", rte );
#endif
  rem_node( &rte->u.rip.garbage );
}