MCPcopy Create free account
hub / github.com/OpenSIPS/opensips / tm_init_timers

Function tm_init_timers

modules/tm/timer.c:556–645  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

554
555
556struct timer_table *tm_init_timers( unsigned int sets )
557{
558 enum lists i;
559 unsigned int set;
560
561 LM_DBG("creating %d parallel timer structures\n", timer_sets);
562
563 timertable = (struct timer_table *)shm_malloc
564 ( sets * sizeof(struct timer_table));
565 if (!timertable) {
566 LM_ERR("no more share memory\n");
567 goto error0;
568 }
569 memset(timertable, 0, sets * sizeof(struct timer_table));
570 timer_sets = sets;
571
572 /* check the timeout values */
573 if ( timer_id2timeout[FR_TIMER_LIST]<MIN_TIMER_VALUE ) {
574 LM_ERR("FR_TIMER must be at least %d\n",
575 MIN_TIMER_VALUE);
576 goto error0;
577 }
578
579 if ( timer_id2timeout[FR_INV_TIMER_LIST]<MIN_TIMER_VALUE ) {
580 LM_ERR("FR_INV_TIMER must be at least %d\n",
581 MIN_TIMER_VALUE);
582 goto error0;
583 }
584
585 if ( timer_id2timeout[WT_TIMER_LIST]<MIN_TIMER_VALUE ) {
586 LM_ERR("WT_TIMER must be at least %d\n",
587 MIN_TIMER_VALUE);
588 goto error0;
589 }
590
591 if ( timer_id2timeout[DELETE_LIST]<MIN_TIMER_VALUE ) {
592 LM_ERR("DELETE_TIMER must be at least %d\n",
593 MIN_TIMER_VALUE);
594 goto error0;
595 }
596
597 if ( timer_id2timeout[RT_T2]<=timer_id2timeout[RT_T1_TO_1] ) {
598 LM_ERR("T2 must be greater than T1\n");
599 goto error0;
600 }
601
602 /* generate timeouts for retransmissions */
603 timer_id2timeout[RT_T1_TO_1] *=1000;
604 timer_id2timeout[RT_T2] *=1000;
605
606 if ( (timer_id2timeout[RT_T1_TO_1]<<1) < timer_id2timeout[RT_T2] )
607 timer_id2timeout[RT_T1_TO_2] = timer_id2timeout[RT_T1_TO_1]<<1;
608 else
609 timer_id2timeout[RT_T1_TO_2] = timer_id2timeout[RT_T2];
610
611 if ( (timer_id2timeout[RT_T1_TO_1]<<2) < timer_id2timeout[RT_T2] )
612 timer_id2timeout[RT_T1_TO_3] = timer_id2timeout[RT_T1_TO_1]<<2;
613 else

Callers 1

mod_initFunction · 0.85

Calls 3

shm_mallocFunction · 0.85
init_timer_listFunction · 0.85
lock_initFunction · 0.85

Tested by

no test coverage detected