提交 267aeb5f authored 作者: Michael Jerris's avatar Michael Jerris

Wed Apr 23 14:30:07 EDT 2008 first.last@nokia.com

  * nua_notifier.c: fixed crash with event fetch



git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@8182 d0543943-73ff-0310-b7d9-9358b9ac24b2
上级 6b46b8e0
Wed Apr 23 14:36:09 EDT 2008 Wed Apr 23 14:38:18 EDT 2008
...@@ -340,7 +340,8 @@ int nua_subscribe_server_report(nua_server_request_t *sr, tagi_t const *tags) ...@@ -340,7 +340,8 @@ int nua_subscribe_server_report(nua_server_request_t *sr, tagi_t const *tags)
{ {
nua_handle_t *nh = sr->sr_owner; nua_handle_t *nh = sr->sr_owner;
nua_dialog_state_t *ds = nh->nh_ds; nua_dialog_state_t *ds = nh->nh_ds;
struct notifier_usage *nu = nua_dialog_usage_private(sr->sr_usage); nua_dialog_usage_t *du = sr->sr_usage;
struct notifier_usage *nu = nua_dialog_usage_private(du);
enum nua_substate substate = nua_substate_terminated; enum nua_substate substate = nua_substate_terminated;
int notify = 0; int notify = 0;
int retval; int retval;
...@@ -365,16 +366,18 @@ int nua_subscribe_server_report(nua_server_request_t *sr, tagi_t const *tags) ...@@ -365,16 +366,18 @@ int nua_subscribe_server_report(nua_server_request_t *sr, tagi_t const *tags)
else else
#endif #endif
notify = 1; notify = 1;
notify = notify && du->du_cr != NULL;
} }
retval = nua_base_server_treport(sr, NUTAG_SUBSTATE(substate), TAG_END()); retval = nua_base_server_treport(sr, NUTAG_SUBSTATE(substate), TAG_END());
if (retval >= 2 || nu == NULL) if (retval >= 2 || du == NULL)
return retval; return retval;
if (notify) { if (notify) {
/* Send NOTIFY (and terminate subscription, when needed) */ /* Send NOTIFY (and terminate subscription, when needed) */
nua_dialog_usage_refresh(nh, ds, sr->sr_usage, sip_now()); nua_dialog_usage_refresh(nh, ds, du, sip_now());
} }
return retval; return retval;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论