Browse Source

sl: allow send_reply() in the route block types supported by t_reply() and sl_send_reply()

- reported by Juha Heinanen, FS#362
Daniel-Constantin Mierla 11 years ago
parent
commit
c77aaf38ea
1 changed files with 4 additions and 1 deletions
  1. 4 1
      modules/sl/sl.c

+ 4 - 1
modules/sl/sl.c

@@ -99,7 +99,7 @@ static cmd_export_t cmds[]={
 	{"sl_reply",       w_sl_send_reply,             2, fixup_sl_reply,
 	{"sl_reply",       w_sl_send_reply,             2, fixup_sl_reply,
 		REQUEST_ROUTE},
 		REQUEST_ROUTE},
 	{"send_reply",     w_send_reply,                2, fixup_sl_reply,
 	{"send_reply",     w_send_reply,                2, fixup_sl_reply,
-		REQUEST_ROUTE|BRANCH_ROUTE|FAILURE_ROUTE},
+		REQUEST_ROUTE|ONREPLY_ROUTE|FAILURE_ROUTE},
 	{"sl_reply_error", w_sl_reply_error,            0, 0,
 	{"sl_reply_error", w_sl_reply_error,            0, 0,
 		REQUEST_ROUTE},
 		REQUEST_ROUTE},
 	{"sl_forward_reply",  w_sl_forward_reply0,      0, 0,
 	{"sl_forward_reply",  w_sl_forward_reply0,      0, 0,
@@ -282,6 +282,9 @@ int send_reply(struct sip_msg *msg, int code, str *reason)
 		}
 		}
 	}
 	}
 
 
+	if(msg->first_line.type==SIP_REPLY)
+		goto error;
+
 	LM_DBG("reply in stateless mode (sl)\n");
 	LM_DBG("reply in stateless mode (sl)\n");
 	ret = sl_send_reply(msg, code, r);
 	ret = sl_send_reply(msg, code, r);