[Freeswitch-trunk] [commit] r12701 - freeswitch/trunk/src/mod/endpoints/mod_sofia
FreeSWITCH SVN
brian at freeswitch.org
Fri Mar 20 19:34:37 PDT 2009
Author: brian
Date: Fri Mar 20 21:34:37 2009
New Revision: 12701
Log:
free handles in error and failure conditions
Modified:
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia.c
freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c
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 Fri Mar 20 21:34:37 2009
@@ -333,6 +333,14 @@
int locked = 0;
int check_destroy = 1;
+ if (nh && sofia_private == &mod_sofia_globals.keep_private) {
+ if (status >= 300) {
+ nua_handle_bind(nh, NULL);
+ nua_handle_destroy(nh);
+ return;
+ }
+ }
+
if (sofia_private && sofia_private != &mod_sofia_globals.destroy_private && sofia_private != &mod_sofia_globals.keep_private) {
if ((gateway = sofia_private->gateway)) {
if (switch_thread_rwlock_tryrdlock(gateway->profile->rwlock) != SWITCH_STATUS_SUCCESS) {
Modified: freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c
==============================================================================
--- freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c (original)
+++ freeswitch/trunk/src/mod/endpoints/mod_sofia/sofia_presence.c Fri Mar 20 21:34:37 2009
@@ -1405,6 +1405,7 @@
}
nh = nua_handle(profile->nua, NULL, NUTAG_URL(contact), SIPTAG_FROM_STR(id), SIPTAG_TO_STR(id), SIPTAG_CONTACT_STR(h->profile->url), TAG_END());
+ nua_handle_bind(nh, &mod_sofia_globals.destroy_private);
nua_notify(nh,
NUTAG_NEWSUB(1),
More information about the Freeswitch-trunk
mailing list