浏览代码

cfgutils: update route_if_exists() to have same behaviour as route()

- do not run the route block as a top route
- related to GH #1503
Daniel-Constantin Mierla 7 年之前
父节点
当前提交
9670bd8055
共有 1 个文件被更改,包括 3 次插入8 次删除
  1. 3 8
      src/modules/cfgutils/cfgutils.c

+ 3 - 8
src/modules/cfgutils/cfgutils.c

@@ -801,11 +801,10 @@ static int w_check_route_exists(struct sip_msg *msg, char *route)
 static int w_route_exists(struct sip_msg *msg, char *route)
 static int w_route_exists(struct sip_msg *msg, char *route)
 {
 {
 	struct run_act_ctx ctx;
 	struct run_act_ctx ctx;
-	int newroute, backup_rt, ret;
+	int newroute, ret;
 	str s;
 	str s;
 
 
-	if (fixup_get_svalue(msg, (gparam_p) route, &s) != 0)
-	{
+	if (fixup_get_svalue(msg, (gparam_p) route, &s) != 0) {
 			LM_ERR("invalid route parameter\n");
 			LM_ERR("invalid route parameter\n");
 			return -1;
 			return -1;
 	}
 	}
@@ -814,12 +813,8 @@ static int w_route_exists(struct sip_msg *msg, char *route)
 	if (newroute<0) {
 	if (newroute<0) {
 		return -1;
 		return -1;
 	}
 	}
-	backup_rt = get_route_type();
-	set_route_type(REQUEST_ROUTE);
-
 	init_run_actions_ctx(&ctx);
 	init_run_actions_ctx(&ctx);
-	ret = run_top_route(main_rt.rlist[newroute], msg, &ctx);
-	set_route_type(backup_rt);
+	ret=run_actions(&ctx, main_rt.rlist[newroute], msg);
 	if (ctx.run_flags & EXIT_R_F) {
 	if (ctx.run_flags & EXIT_R_F) {
 		return 0;
 		return 0;
 	}
 	}