Module: sip-router Branch: tmp/ruri_branch Commit: 4cf857a1180e14807b6d4085a5795a24cac262bc URL: http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=4cf857a1...
Author: Andrei Pelinescu-Onciul andrei@iptel.org Committer: Andrei Pelinescu-Onciul andrei@iptel.org Date: Thu May 27 11:02:28 2010 +0200
tm: failure route start with r-uri marked as "consumed"
When the failure route starts, the main r-uri should not be reused for forking, unless changed.
---
modules/tm/t_reply.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-)
diff --git a/modules/tm/t_reply.c b/modules/tm/t_reply.c index 2e6fd55..4318886 100644 --- a/modules/tm/t_reply.c +++ b/modules/tm/t_reply.c @@ -718,6 +718,7 @@ static int _reply( struct cell *trans, struct sip_msg* p_msg, /** create or restore a "fake environment" for running a failure_route. *if msg is set -> it will fake the env. vars conforming with the msg; if NULL * the env. will be restore to original. + * Side-effect: mark_ruri_consumed(). */ void faked_env( struct cell *t, struct sip_msg *msg) { @@ -740,6 +741,11 @@ void faked_env( struct cell *t, struct sip_msg *msg) */ backup_route_type=get_route_type(); set_route_type(FAILURE_ROUTE); + /* don't bother backing up ruri state, since failure route + is called either on reply or on timer and in both cases + the ruri should not be used again for forking */ + ruri_mark_consumed(); /* in failure route we assume ruri + should not be used again for forking */ /* also, tm actions look in beginning whether transaction is * set -- whether we are called from a reply-processing * or a timer process, we need to set current transaction;