فهرست منبع

dialog: parse headers for request and transfer reply for errors

Daniel-Constantin Mierla 6 سال پیش
والد
کامیت
4e1ebc6b44
2فایلهای تغییر یافته به همراه9 افزوده شده و 0 حذف شده
  1. 5 0
      src/modules/dialog/dlg_handlers.c
  2. 4 0
      src/modules/dialog/dlg_transfer.c

+ 5 - 0
src/modules/dialog/dlg_handlers.c

@@ -852,6 +852,11 @@ int dlg_new_dialog(sip_msg_t *req, struct cell *t, const int run_initial_cbs)
 	if(req->first_line.u.request.method_value != METHOD_INVITE)
 		return -1;
 
+	if(parse_headers(req, HDR_EOH_F, 0) < 0) {
+		LM_ERR("failed to parse the request headers\n");
+		return -1;
+	}
+
     if(pre_match_parse( req, &callid, &ftag, &ttag, 0)<0) {
         LM_WARN("pre-matching failed\n");
         return -1;

+ 4 - 0
src/modules/dialog/dlg_transfer.c

@@ -252,6 +252,10 @@ void dlg_bridge_tm_callback(struct cell *t, int type, struct tmcb_params *ps)
 
 	/* 2xx - build dialog/send refer */
 	msg = ps->rpl;
+	if(parse_headers(msg, HDR_EOH_F, 0) < 0) {
+		LM_ERR("failed to parse the reply headers\n");
+		goto error;
+	}
 	if((msg->cseq==NULL || parse_headers(msg,HDR_CSEQ_F,0)<0)
 			|| msg->cseq==NULL || msg->cseq->parsed==NULL)
 	{