andrei 2008/05/30 23:10:54 CEST
SER CVS Repository
Modified files:
modules/tm t_cancel.c t_fwd.c t_reply.c t_reply.h
timer.c
Log:
- fix: in some corner cases where send blocks for a long time or when final
reply or on send callbacks take too much time to execute for a transaction
for which the final reply timer just expired, it is possible that the wait
handler would execute _before_ we are finished with t (e.g. before all the
callbacks are called). Because presence on a timer list is not ref. counted
and we optimize deletion by allowing unlink_timer() not to wait for the
fr_timer to finish (timer_allow_del()) this would mean the transaction will
be deleted while still in use. The fix makes sure the wait timer is always
started after we're not looking at t anymore (an alternative would be to
remove timer_allow_del() from retr_buf_hanlder(), but this could cause
fast timer slowdowns).
Revision Changes Path
1.31 +3 -3 sip_router/modules/tm/t_cancel.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_cancel.c.diff?r1=1.30&r2=1.31
1.105 +4 -4 sip_router/modules/tm/t_fwd.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_fwd.c.diff?r1=1.104&r2=1.105
1.161 +64 -32 sip_router/modules/tm/t_reply.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_reply.c.diff?r1=1.160&r2=1.161
1.30 +2 -2 sip_router/modules/tm/t_reply.h
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/t_reply.h.diff?r1=1.29&r2=1.30
1.84 +9 -25 sip_router/modules/tm/timer.c
http://cvs.berlios.de/cgi-bin/viewcvs.cgi/ser/sip_router/modules/tm/timer.c.diff?r1=1.83&r2=1.84
_______________________________________________
Serdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/serdev