瀏覽代碼

debugger: Restrict dbg_sip_msg() to REQUEST/ONSEND

Allow dbg_sip_msg only from REQUEST/ONSEND route in a similar way as for
msg_apply_changes().
Stefan Mititelu 9 年之前
父節點
當前提交
7b67ab4623
共有 1 個文件被更改,包括 8 次插入3 次删除
  1. 8 3
      modules/debugger/debugger_mod.c

+ 8 - 3
modules/debugger/debugger_mod.c

@@ -99,11 +99,11 @@ static cmd_export_t cmds[]={
 	{"dbg_pv_dump", (cmd_function)w_dbg_dump, 2,
 		fixup_dbg_pv_dump, 0, ANY_ROUTE},
 	{"dbg_sip_msg", (cmd_function)w_dbg_sip_msg, 0,
-		fixup_dbg_sip_msg, 0, REQUEST_ROUTE},
+		fixup_dbg_sip_msg, 0, REQUEST_ROUTE|ONREPLY_ROUTE},
 	{"dbg_sip_msg", (cmd_function)w_dbg_sip_msg, 1,
-		fixup_dbg_sip_msg, 0, REQUEST_ROUTE},
+		fixup_dbg_sip_msg, 0, REQUEST_ROUTE|ONREPLY_ROUTE},
 	{"dbg_sip_msg", (cmd_function)w_dbg_sip_msg, 2,
-		fixup_dbg_sip_msg, 0, REQUEST_ROUTE},
+		fixup_dbg_sip_msg, 0, REQUEST_ROUTE|ONREPLY_ROUTE},
 	{0, 0, 0, 0, 0, 0}
 };
 
@@ -777,6 +777,11 @@ static int w_dbg_sip_msg(struct sip_msg* msg, char *level, char *facility)
 	struct dest_info send_info;
 	str obuf;
 
+	if (msg->first_line.type != SIP_REPLY && get_route_type() != REQUEST_ROUTE) {
+		LM_ERR("invalid usage - not in request route\n");
+		return -1;
+	}
+
 	if (level != NULL) {
 		/* substract L_OFFSET previously added */
 		ilevel = (int)(long)level - L_OFFSET;