提交 3e4e1592 authored 作者: Michael Jerris's avatar Michael Jerris

ignore CANCEL of incoming requests after we send a final response. Patch by me and Kai Vehmanen.

git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@4213 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 e360d650
...@@ -2210,16 +2210,15 @@ int process_cancel(nua_server_request_t *sr, ...@@ -2210,16 +2210,15 @@ int process_cancel(nua_server_request_t *sr,
nua_session_usage_t *ss = nua_dialog_usage_private(sr->sr_usage); nua_session_usage_t *ss = nua_dialog_usage_private(sr->sr_usage);
msg_t *cancel = nta_incoming_getrequest_ackcancel(irq); msg_t *cancel = nta_incoming_getrequest_ackcancel(irq);
assert(nta_incoming_status(irq) < 200); if (nta_incoming_status(irq) < 200 && nua_server_request_is_pending(sr) &&
assert(nua_server_request_is_pending(sr)); ss && (ss == nua_session_usage_get(nh->nh_ds))) {
assert(ss); assert(ss == nua_session_usage_get(nh->nh_ds)); (void)ss; nua_stack_event(nh->nh_nua, nh, cancel, nua_i_cancel, SIP_200_OK, NULL);
nua_stack_event(nh->nh_nua, nh, cancel, nua_i_cancel, SIP_200_OK, NULL); SR_STATUS1(sr, SIP_487_REQUEST_TERMINATED);
SR_STATUS1(sr, SIP_487_REQUEST_TERMINATED); nua_server_respond(sr, NULL);
nua_server_report(sr);
nua_server_respond(sr, NULL); }
nua_server_report(sr);
return 0; return 0;
} }
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论