fix for timer issues
jolly <[email protected]>
| Newsgroups | gmane.linux.isdn.i4l.user |
|---|---|
| Message-ID | <[email protected]> |
hi, i just found an issue on timer handling with NT mode stack. when a phone answers (call from application to phone), the child process for this phone will replace the master process. the timers of that process still have the master pid. this will cause any timer timeout to be ignored for that phone until release. my patch changes the pid of timers also when a child process is selected. additionally it is required to stop T312 for this instance. i would like to test it a while. my questions are: - should we change the pid of timers when process is selected? - should we stop T312 when process is selected? another minor issue: i suggest to change T305 to 1 minute, to hear announcement. this is what carriers seem to do. regards, andreass _______________________________________________ isdn4linux mailing list [email protected] https://www.isdn4linux.de/mailman/listinfo/isdn4linux
misdn_timer.patch
(text/plain, 908 B)
diff --git a/lib/include/dss1.h b/lib/include/dss1.h index 3ca075b..5060c11 100644 --- a/lib/include/dss1.h +++ b/lib/include/dss1.h @@ -24,7 +24,7 @@ #define T302 15000 #define T303 4000 #define T304 30000 -#define T305 30000 +#define T305 60000 #define T308 4000 /* for layer 1 certification T309 < layer1 T3 (e.g. 4000) */ /* This makes some tests easier and quicker */ diff --git a/lib/layer3/dss1net.c b/lib/layer3/dss1net.c index cd44b60..21c9be3 100644 --- a/lib/layer3/dss1net.c +++ b/lib/layer3/dss1net.c @@ -1743,6 +1752,9 @@ send_proc(l3_process_t *proc, int op, void *arg) } proc->L3->ml3.from_layer3(&proc->L3->ml3, MT_ASSIGN, proc->selpid, NULL); proc->pid = proc->selpid; + proc->timer1.pid = proc->pid; + proc->timer2.pid = proc->pid; + L3DelTimer(&proc->timer2); /* stop T312, if running */ proc->l2if = p->l2if; send_proc(p, IMSG_END_PROC, NULL); break;