[Freeswitch-svn] [commit] r9204 - freeswitch/trunk/src/mod/endpoints/mod_sofia
Freeswitch SVN
anthm at freeswitch.org
Tue Jul 29 13:54:42 EDT 2008
Author: anthm
Date: Tue Jul 29 13:54:42 2008
New Revision: 9204
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
Log:
fix jira issue FSCORE-164
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/mod_sofia.h Tue Jul 29 13:54:42 2008
@@ -111,6 +111,7 @@
char gateway_name[512];
int destroy_nh;
int destroy_me;
+ int is_call;
};
#define set_param(ptr,val) if (ptr) {free(ptr) ; ptr = NULL;} if (val) {ptr = strdup(val);}
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c Tue Jul 29 13:54:42 2008
@@ -205,6 +205,8 @@
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "Channel is already hungup.\n");
goto done;
}
+ } else if (sofia_private && sofia_private->is_call) {
+ sofia_private->destroy_me = 22;
}
if ((profile->pflags & PFLAG_AUTH_ALL) && tech_pvt && tech_pvt->key && sip) {
@@ -353,6 +355,7 @@
nua_handle_bind(nh, NULL);
}
sofia_private->destroy_me = 12;
+
free(sofia_private);
sofia_private = NULL;
}
@@ -3559,6 +3562,7 @@
}
memset(sofia_private, 0, sizeof(*sofia_private));
+ sofia_private->is_call++;
tech_pvt->sofia_private = sofia_private;
if ((profile->pflags & PFLAG_PRESENCE)) {
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_glue.c Tue Jul 29 13:54:42 2008
@@ -1206,7 +1206,10 @@
if (!(sofia_private = malloc(sizeof(*sofia_private)))) {
abort();
}
+
memset(sofia_private, 0, sizeof(*sofia_private));
+ sofia_private->is_call++;
+
tech_pvt->sofia_private = sofia_private;
switch_copy_string(tech_pvt->sofia_private->uuid, switch_core_session_get_uuid(session), sizeof(tech_pvt->sofia_private->uuid));
nua_handle_bind(tech_pvt->nh, tech_pvt->sofia_private);
More information about the Freeswitch-svn
mailing list