Remove completely obsolete patches from tree

These haven't been touched in years; they can't possibly still be
applicable.
This commit is contained in:
Travis Cross 2014-03-19 03:02:49 +00:00
parent 1f76e88f15
commit 1723c12ede
4 changed files with 0 additions and 584 deletions

View File

@ -1,26 +0,0 @@
Index: libs/xmlrpc-c/lib/abyss/src/socket_unix.c
===================================================================
--- libs/xmlrpc-c/lib/abyss/src/socket_unix.c (revision 13903)
+++ libs/xmlrpc-c/lib/abyss/src/socket_unix.c (working copy)
@@ -227,20 +227,8 @@
struct socketUnix * const socketUnixP = channelP->implP;
int rc;
- fd_set rfds, efds;
- struct timeval tv = { 10, 0 };
-
- FD_ZERO(&rfds);
- FD_ZERO(&efds);
- FD_SET(socketUnixP->fd, &rfds);
- FD_SET(socketUnixP->fd, &efds);
+ rc = recv(socketUnixP->fd, buffer, bufferSize, 0);
- if ((rc = select(socketUnixP->fd + 1, &rfds, NULL, &efds, &tv)) > 0) {
- rc = recv(socketUnixP->fd, buffer, bufferSize, 0);
- } else {
- rc = -1;
- }
-
if (rc < 0) {
*failedP = TRUE;
if (ChannelTraceIsActive)

View File

@ -1,170 +0,0 @@
Index: libs/portaudio/src/hostapi/coreaudio/pa_mac_core.c
===================================================================
--- libs/portaudio/src/hostapi/coreaudio/pa_mac_core.c (revision 14988)
+++ libs/portaudio/src/hostapi/coreaudio/pa_mac_core.c (working copy)
@@ -801,8 +801,8 @@
const double sampleRate,
void *refCon )
{
- ComponentDescription desc;
- Component comp;
+ AudioComponentDescription desc;
+ AudioComponent comp;
/*An Apple TN suggests using CAStreamBasicDescription, but that is C++*/
AudioStreamBasicDescription desiredFormat;
OSStatus result = noErr;
@@ -873,7 +873,7 @@
desc.componentFlags = 0;
desc.componentFlagsMask = 0;
/* -- find the component -- */
- comp = FindNextComponent( NULL, &desc );
+ comp = AudioComponentFindNext( NULL, &desc );
if( !comp )
{
DBUG( ( "AUHAL component not found." ) );
@@ -882,7 +882,7 @@
return paUnanticipatedHostError;
}
/* -- open it -- */
- result = OpenAComponent( comp, audioUnit );
+ result = AudioComponentInstanceNew( comp, audioUnit );
if( result )
{
DBUG( ( "Failed to open AUHAL component." ) );
@@ -1224,7 +1224,7 @@
#undef ERR_WRAP
error:
- CloseComponent( *audioUnit );
+ AudioComponentInstanceDispose( *audioUnit );
*audioUnit = NULL;
if( result )
return PaMacCore_SetError( result, line, 1 );
@@ -2146,13 +2146,13 @@
xrunCallback );
if( stream->outputUnit && stream->outputUnit != stream->inputUnit ) {
AudioUnitUninitialize( stream->outputUnit );
- CloseComponent( stream->outputUnit );
+ AudioComponentInstanceDispose( stream->outputUnit );
}
stream->outputUnit = NULL;
if( stream->inputUnit )
{
AudioUnitUninitialize( stream->inputUnit );
- CloseComponent( stream->inputUnit );
+ AudioComponentInstanceDispose( stream->inputUnit );
stream->inputUnit = NULL;
}
if( stream->inputRingBuffer.buffer )
@@ -2211,12 +2211,12 @@
// it's not clear from appl's docs that this really waits
// until all data is flushed.
-static ComponentResult BlockWhileAudioUnitIsRunning( AudioUnit audioUnit, AudioUnitElement element )
+static OSStatus BlockWhileAudioUnitIsRunning( AudioUnit audioUnit, AudioUnitElement element )
{
Boolean isRunning = 1;
while( isRunning ) {
UInt32 s = sizeof( isRunning );
- ComponentResult err = AudioUnitGetProperty( audioUnit, kAudioOutputUnitProperty_IsRunning, kAudioUnitScope_Global, element, &isRunning, &s );
+ OSStatus err = AudioUnitGetProperty( audioUnit, kAudioOutputUnitProperty_IsRunning, kAudioUnitScope_Global, element, &isRunning, &s );
if( err )
return err;
Pa_Sleep( 100 );
Index: libs/portaudio/src/common/pa_types.h
===================================================================
--- libs/portaudio/src/common/pa_types.h (revision 14988)
+++ libs/portaudio/src/common/pa_types.h (working copy)
@@ -62,7 +62,11 @@
#endif
#ifndef SIZEOF_LONG
+#ifdef __LP64__
+#define SIZEOF_LONG 8
+#else
#define SIZEOF_LONG 4
+#endif /* __LP64__ */
#endif
Index: libs/libsndfile/M4/ltsugar.m4
===================================================================
--- libs/libsndfile/M4/ltsugar.m4 (revision 14988)
+++ libs/libsndfile/M4/ltsugar.m4 (working copy)
@@ -1,13 +1,13 @@
# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
+# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
#
# This file is free software; the Free Software Foundation gives
# unlimited permission to copy and/or distribute it, with or without
# modifications, as long as this notice is preserved.
-# serial 6 ltsugar.m4
+# serial 5 ltsugar.m4
# This is to help aclocal find these macros, as it can't see m4_define.
AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
@@ -63,14 +63,14 @@
# Produce a SEP delimited list of all paired combinations of elements of
# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
- [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
- [m4_foreach([_Lt_suffix],
- ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
- [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+[m4_if([$2], [], [],
+ [m4_if([$4], [], [],
+ [lt_join(m4_quote(m4_default([$1], [[, ]])),
+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_prefix, [$2],
+ [m4_foreach(_Lt_suffix, lt_car([m4_shiftn(3, $@)]),
+ [_Lt_prefix[]$3[]_Lt_suffix ])])))))])])dnl
+])
# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
Index: libs/libsndfile/M4/ltversion.m4
===================================================================
--- libs/libsndfile/M4/ltversion.m4 (revision 14988)
+++ libs/libsndfile/M4/ltversion.m4 (working copy)
@@ -9,15 +9,15 @@
# Generated from ltversion.in.
-# serial 3012 ltversion.m4
+# serial 2976 ltversion.m4
# This file is part of GNU Libtool
-m4_define([LT_PACKAGE_VERSION], [2.2.6])
-m4_define([LT_PACKAGE_REVISION], [1.3012])
+m4_define([LT_PACKAGE_VERSION], [2.2.4])
+m4_define([LT_PACKAGE_REVISION], [1.2976])
AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.2.6'
-macro_revision='1.3012'
+[macro_version='2.2.4'
+macro_revision='1.2976'
_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
_LT_DECL(, macro_revision, 0)
])
Index: libs/libsndfile/M4/ltoptions.m4
===================================================================
--- libs/libsndfile/M4/ltoptions.m4 (revision 14988)
+++ libs/libsndfile/M4/ltoptions.m4 (working copy)
@@ -125,7 +125,7 @@
[enable_win32_dll=yes
case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+*-*-cygwin* | *-*-mingw* | *-*-pw32*)
AC_CHECK_TOOL(AS, as, false)
AC_CHECK_TOOL(DLLTOOL, dlltool, false)
AC_CHECK_TOOL(OBJDUMP, objdump, false)

View File

@ -1,383 +0,0 @@
Index: src/mod/endpoints/mod_sofia/sofia_reg.c
===================================================================
--- src/mod/endpoints/mod_sofia/sofia_reg.c (revision 12705)
+++ src/mod/endpoints/mod_sofia/sofia_reg.c (working copy)
@@ -37,26 +37,56 @@
*/
#include "mod_sofia.h"
-static void sofia_reg_kill_reg(sofia_gateway_t *gateway_ptr, int unreg)
+static void sofia_reg_new_handle(sofia_gateway_t *gateway_ptr)
{
+ int ss_state = nua_callstate_authenticating;
+
if (gateway_ptr->nh) {
- if (unreg) {
- nua_unregister(gateway_ptr->nh,
- NUTAG_URL(gateway_ptr->register_url),
- SIPTAG_FROM_STR(gateway_ptr->register_from),
- SIPTAG_TO_STR(gateway_ptr->register_from),
- SIPTAG_CONTACT_STR(gateway_ptr->register_contact),
- SIPTAG_EXPIRES_STR(gateway_ptr->expires_str),
- NUTAG_REGISTRAR(gateway_ptr->register_proxy),
- NUTAG_OUTBOUND("no-options-keepalive"), NUTAG_OUTBOUND("no-validate"), NUTAG_KEEPALIVE(0), TAG_NULL());
- }
nua_handle_bind(gateway_ptr->nh, NULL);
nua_handle_destroy(gateway_ptr->nh);
gateway_ptr->nh = NULL;
+ sofia_private_free(gateway_ptr->sofia_private);
}
+ gateway_ptr->nh = nua_handle(gateway_ptr->profile->nua, NULL,
+ SIPTAG_CALL_ID_STR(gateway_ptr->uuid_str),
+ NUTAG_URL(gateway_ptr->register_proxy),
+ SIPTAG_TO_STR(gateway_ptr->register_to),
+ NUTAG_CALLSTATE_REF(ss_state), SIPTAG_FROM_STR(gateway_ptr->register_from), TAG_END());
+
+
+ if (!gateway_ptr->sofia_private) {
+ gateway_ptr->sofia_private = malloc(sizeof(*gateway_ptr->sofia_private));
+ switch_assert(gateway_ptr->sofia_private);
+ }
+ memset(gateway_ptr->sofia_private, 0, sizeof(*gateway_ptr->sofia_private));
+
+ gateway_ptr->sofia_private->gateway = gateway_ptr;
+ nua_handle_bind(gateway_ptr->nh, gateway_ptr->sofia_private);
}
+static void sofia_reg_kill_reg(sofia_gateway_t *gateway_ptr)
+{
+
+ if (!gateway_ptr->nh) {
+ sofia_reg_new_handle(gateway_ptr);
+
+ }
+
+ if (gateway_ptr->nh) {
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "UNRegistering %s\n", gateway_ptr->name);
+ nua_unregister(gateway_ptr->nh,
+ NUTAG_URL(gateway_ptr->register_url),
+ SIPTAG_FROM_STR(gateway_ptr->register_from),
+ SIPTAG_TO_STR(gateway_ptr->register_from),
+ SIPTAG_CONTACT_STR(gateway_ptr->register_contact),
+ SIPTAG_EXPIRES_STR(gateway_ptr->expires_str),
+ NUTAG_REGISTRAR(gateway_ptr->register_proxy),
+ NUTAG_OUTBOUND("no-options-keepalive"), NUTAG_OUTBOUND("no-validate"), NUTAG_KEEPALIVE(0), TAG_NULL());
+ }
+
+}
+
static void sofia_reg_fire_custom_gateway_state_event(sofia_gateway_t *gateway) {
switch_event_t *s_event;
if (switch_event_create_subclass(&s_event, SWITCH_EVENT_CUSTOM, MY_EVENT_GATEWAY_STATE) == SWITCH_STATUS_SUCCESS) {
@@ -71,10 +101,9 @@
sofia_gateway_t *gateway_ptr;
for (gateway_ptr = profile->gateways; gateway_ptr; gateway_ptr = gateway_ptr->next) {
if (gateway_ptr->sofia_private) {
- free(gateway_ptr->sofia_private);
- gateway_ptr->sofia_private = NULL;
+ sofia_private_free(gateway_ptr->sofia_private);
}
- sofia_reg_kill_reg(gateway_ptr, 1);
+ sofia_reg_kill_reg(gateway_ptr);
}
}
@@ -108,7 +137,7 @@
break;
case SUB_STATE_UNSUBSCRIBE:
gw_sub_ptr->state = SUB_STATE_NOSUB;
-
+
/* not tested .. */
nua_unsubscribe(gateway_ptr->nh,
NUTAG_URL(gateway_ptr->register_url),
@@ -121,24 +150,23 @@
break;
case SUB_STATE_UNSUBED:
- if ((gateway_ptr->nh = nua_handle(gateway_ptr->profile->nua, NULL,
- NUTAG_URL(gateway_ptr->register_proxy),
- SIPTAG_TO_STR(gateway_ptr->register_to),
- NUTAG_CALLSTATE_REF(ss_state),
- SIPTAG_FROM_STR(gateway_ptr->register_from), TAG_END()))) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "subscribing to [%s] on gateway [%s]\n", gw_sub_ptr->event, gateway_ptr->name);
- }
+ gateway_ptr->sub_nh = nua_handle(gateway_ptr->profile->nua, NULL,
+ NUTAG_URL(gateway_ptr->register_proxy),
+ SIPTAG_TO_STR(gateway_ptr->register_to),
+ NUTAG_CALLSTATE_REF(ss_state),
+ SIPTAG_FROM_STR(gateway_ptr->register_from), TAG_END());
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "subscribing to [%s] on gateway [%s]\n", gw_sub_ptr->event, gateway_ptr->name);
gateway_ptr->sofia_private = malloc(sizeof(*gateway_ptr->sofia_private));
switch_assert(gateway_ptr->sofia_private);
-
+
memset(gateway_ptr->sofia_private, 0, sizeof(*gateway_ptr->sofia_private));
gateway_ptr->sofia_private->gateway = gateway_ptr;
nua_handle_bind(gateway_ptr->nh, gateway_ptr->sofia_private);
if (now) {
- nua_subscribe(gateway_ptr->nh,
+ nua_subscribe(gateway_ptr->sub_nh,
NUTAG_URL(gateway_ptr->register_url),
SIPTAG_EVENT_STR(gw_sub_ptr->event),
SIPTAG_ACCEPT_STR(gw_sub_ptr->content_type),
@@ -149,7 +177,7 @@
TAG_NULL());
gw_sub_ptr->retry = now + gw_sub_ptr->retry_seconds;
} else {
- nua_unsubscribe(gateway_ptr->nh,
+ nua_unsubscribe(gateway_ptr->sub_nh,
NUTAG_URL(gateway_ptr->register_url),
SIPTAG_EVENT_STR(gw_sub_ptr->event),
SIPTAG_ACCEPT_STR(gw_sub_ptr->content_type),
@@ -207,7 +235,6 @@
}
for (gateway_ptr = profile->gateways; gateway_ptr; gateway_ptr = gateway_ptr->next) {
- int ss_state = nua_callstate_authenticating;
reg_state_t ostate = gateway_ptr->state;
if (!now) {
@@ -223,6 +250,7 @@
switch_assert(pvt);
memset(pvt, 0, sizeof(*pvt));
pvt->destroy_nh = 1;
+ pvt->destroy_me = 1;
switch_copy_string(pvt->gateway_name, gateway_ptr->name, sizeof(pvt->gateway_name));
nua_handle_bind(nh, pvt);
@@ -254,64 +282,46 @@
break;
case REG_STATE_UNREGISTER:
- sofia_reg_kill_reg(gateway_ptr, 1);
+ sofia_reg_kill_reg(gateway_ptr);
gateway_ptr->state = REG_STATE_NOREG;
break;
case REG_STATE_UNREGED:
gateway_ptr->status = SOFIA_GATEWAY_DOWN;
- sofia_reg_kill_reg(gateway_ptr, 0);
+
+ sofia_reg_new_handle(gateway_ptr);
- if ((gateway_ptr->nh = nua_handle(gateway_ptr->profile->nua, NULL,
- SIPTAG_CALL_ID_STR(gateway_ptr->uuid_str),
- NUTAG_URL(gateway_ptr->register_proxy),
- SIPTAG_TO_STR(gateway_ptr->register_to),
- NUTAG_CALLSTATE_REF(ss_state), SIPTAG_FROM_STR(gateway_ptr->register_from), TAG_END()))) {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Registering %s\n", gateway_ptr->name);
-
- if (!gateway_ptr->sofia_private) {
- gateway_ptr->sofia_private = malloc(sizeof(*gateway_ptr->sofia_private));
- switch_assert(gateway_ptr->sofia_private);
- }
- memset(gateway_ptr->sofia_private, 0, sizeof(*gateway_ptr->sofia_private));
-
- gateway_ptr->sofia_private->gateway = gateway_ptr;
- nua_handle_bind(gateway_ptr->nh, gateway_ptr->sofia_private);
-
- if (now) {
- nua_register(gateway_ptr->nh,
- NUTAG_URL(gateway_ptr->register_url),
- TAG_IF(gateway_ptr->register_sticky_proxy, NUTAG_PROXY(gateway_ptr->register_sticky_proxy)),
- SIPTAG_TO_STR(gateway_ptr->register_from),
- SIPTAG_FROM_STR(gateway_ptr->register_from),
- SIPTAG_CONTACT_STR(gateway_ptr->register_contact),
- SIPTAG_EXPIRES_STR(gateway_ptr->expires_str),
- NUTAG_REGISTRAR(gateway_ptr->register_proxy),
- NUTAG_OUTBOUND("no-options-keepalive"), NUTAG_OUTBOUND("no-validate"), NUTAG_KEEPALIVE(0), TAG_NULL());
- gateway_ptr->retry = now + gateway_ptr->retry_seconds;
- } else {
- nua_unregister(gateway_ptr->nh,
- NUTAG_URL(gateway_ptr->register_url),
- SIPTAG_FROM_STR(gateway_ptr->register_from),
- SIPTAG_TO_STR(gateway_ptr->register_from),
- SIPTAG_CONTACT_STR(gateway_ptr->register_contact),
- SIPTAG_EXPIRES_STR(gateway_ptr->expires_str),
- NUTAG_REGISTRAR(gateway_ptr->register_proxy),
- NUTAG_OUTBOUND("no-options-keepalive"), NUTAG_OUTBOUND("no-validate"), NUTAG_KEEPALIVE(0), TAG_NULL());
- }
+ switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_NOTICE, "Registering %s\n", gateway_ptr->name);
+
+ if (now) {
+ nua_register(gateway_ptr->nh,
+ NUTAG_URL(gateway_ptr->register_url),
+ TAG_IF(gateway_ptr->register_sticky_proxy, NUTAG_PROXY(gateway_ptr->register_sticky_proxy)),
+ SIPTAG_TO_STR(gateway_ptr->register_from),
+ SIPTAG_FROM_STR(gateway_ptr->register_from),
+ SIPTAG_CONTACT_STR(gateway_ptr->register_contact),
+ SIPTAG_EXPIRES_STR(gateway_ptr->expires_str),
+ NUTAG_REGISTRAR(gateway_ptr->register_proxy),
+ NUTAG_OUTBOUND("no-options-keepalive"), NUTAG_OUTBOUND("no-validate"), NUTAG_KEEPALIVE(0), TAG_NULL());
gateway_ptr->retry = now + gateway_ptr->retry_seconds;
- gateway_ptr->state = REG_STATE_TRYING;
-
} else {
- switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Error registering %s failure #%d\n", gateway_ptr->name, ++gateway_ptr->failures);
- gateway_ptr->state = REG_STATE_FAILED;
+ nua_unregister(gateway_ptr->nh,
+ NUTAG_URL(gateway_ptr->register_url),
+ SIPTAG_FROM_STR(gateway_ptr->register_from),
+ SIPTAG_TO_STR(gateway_ptr->register_from),
+ SIPTAG_CONTACT_STR(gateway_ptr->register_contact),
+ SIPTAG_EXPIRES_STR(gateway_ptr->expires_str),
+ NUTAG_REGISTRAR(gateway_ptr->register_proxy),
+ NUTAG_OUTBOUND("no-options-keepalive"), NUTAG_OUTBOUND("no-validate"), NUTAG_KEEPALIVE(0), TAG_NULL());
}
+ gateway_ptr->retry = now + gateway_ptr->retry_seconds;
+ gateway_ptr->state = REG_STATE_TRYING;
+
break;
case REG_STATE_FAILED:
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "%s Failed Registration, setting retry to %d seconds.\n",
gateway_ptr->name, gateway_ptr->retry_seconds * (gateway_ptr->failures + 1));
gateway_ptr->retry = now + (gateway_ptr->retry_seconds * (gateway_ptr->failures + 1));
- sofia_reg_kill_reg(gateway_ptr, 0);
gateway_ptr->status = SOFIA_GATEWAY_DOWN;
gateway_ptr->state = REG_STATE_FAIL_WAIT;
break;
@@ -408,6 +418,7 @@
SIPTAG_CONTACT_STR(profile->url),
TAG_END());
+ nua_handle_bind(nh, &mod_sofia_globals.destroy_private);
nua_notify(nh,
NUTAG_NEWSUB(1),
SIPTAG_EVENT_STR(event),
@@ -1275,6 +1286,23 @@
if (ostate != sofia_private->gateway->state) {
sofia_reg_fire_custom_gateway_state_event(sofia_private->gateway);
}
+
+
+ if (status >= 200) {
+ if (sofia_private) {
+ if (sofia_private->gateway) {
+ nua_handle_destroy(sofia_private->gateway->nh);
+ sofia_private->gateway->nh = NULL;
+ nua_handle_bind(sofia_private->gateway->nh, NULL);
+ sofia_private->gateway->sofia_private = NULL;
+ } else {
+ nua_handle_destroy(nh);
+ }
+ sofia_private_free(sofia_private);
+ } else {
+ nua_handle_destroy(nh);
+ }
+ }
}
}
Index: src/mod/endpoints/mod_sofia/mod_sofia.c
===================================================================
--- src/mod/endpoints/mod_sofia/mod_sofia.c (revision 12705)
+++ src/mod/endpoints/mod_sofia/mod_sofia.c (working copy)
@@ -2703,6 +2703,8 @@
SIPTAG_CONTACT_STR(profile->url),
TAG_END());
+ nua_handle_bind(nh, &mod_sofia_globals.destroy_private);
+
nua_notify(nh,
NUTAG_NEWSUB(1),
SIPTAG_EVENT_STR(es),
@@ -2902,6 +2904,8 @@
memset(&mod_sofia_globals, 0, sizeof(mod_sofia_globals));
mod_sofia_globals.destroy_private.destroy_nh = 1;
+ mod_sofia_globals.destroy_private.is_static = 1;
+ mod_sofia_globals.keep_private.is_static = 1;
mod_sofia_globals.pool = pool;
switch_mutex_init(&mod_sofia_globals.mutex, SWITCH_MUTEX_NESTED, mod_sofia_globals.pool);
Index: src/mod/endpoints/mod_sofia/sofia.c
===================================================================
--- src/mod/endpoints/mod_sofia/sofia.c (revision 12705)
+++ src/mod/endpoints/mod_sofia/sofia.c (working copy)
@@ -111,6 +111,7 @@
sofia_sla_handle_sip_i_notify(nua, profile, nh, sip, tags);
if (sub_state == nua_substate_terminated) {
+ sofia_private_free(sofia_private);
nua_handle_bind(nh, NULL);
nua_handle_destroy(nh);
}
@@ -544,8 +545,7 @@
nua_handle_bind(nh, NULL);
}
sofia_private->destroy_me = 12;
- free(sofia_private);
- sofia_private = NULL;
+ sofia_private_free(sofia_private);
}
if (gateway) {
@@ -4721,7 +4721,7 @@
}
nua_handle_bind(nh, NULL);
- free(sofia_private);
+ sofia_private_free(sofia_private);
switch_core_session_destroy(&session);
nua_respond(nh, 503, "Maximum Calls In Progress", SIPTAG_RETRY_AFTER_STR("300"), TAG_END());
}
Index: src/mod/endpoints/mod_sofia/mod_sofia.h
===================================================================
--- src/mod/endpoints/mod_sofia/mod_sofia.h (revision 12705)
+++ src/mod/endpoints/mod_sofia/mod_sofia.h (working copy)
@@ -122,10 +122,12 @@
int destroy_nh;
int destroy_me;
int is_call;
+ int is_static;
};
#define set_param(ptr,val) if (ptr) {free(ptr) ; ptr = NULL;} if (val) {ptr = strdup(val);}
#define set_anchor(t,m) if (t->Anchor) {delete t->Anchor;} t->Anchor = new SipMessage(m);
+#define sofia_private_free(_pvt) if (_pvt && ! _pvt->is_static) {free(_pvt); _pvt = NULL;}
/* Local Structures */
/*************************************************************************************************************************************************************/
@@ -321,6 +323,7 @@
struct sofia_gateway {
sofia_private_t *sofia_private;
nua_handle_t *nh;
+ nua_handle_t *sub_nh;
sofia_profile_t *profile;
char *name;
char *register_scheme;
Index: src/mod/endpoints/mod_sofia/sofia_presence.c
===================================================================
--- src/mod/endpoints/mod_sofia/sofia_presence.c (revision 12705)
+++ src/mod/endpoints/mod_sofia/sofia_presence.c (working copy)
@@ -177,7 +177,7 @@
SIPTAG_FROM_STR(from), NUTAG_URL(contact),
SIPTAG_TO_STR(clean_to), SIPTAG_CONTACT_STR(profile->url),
TAG_END());
-
+ nua_handle_bind(msg_nh, &mod_sofia_globals.destroy_private);
nua_message(msg_nh, SIPTAG_CONTENT_TYPE_STR(ct), SIPTAG_PAYLOAD_STR(body), TAG_END());
end:
@@ -1860,6 +1860,16 @@
default:
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "status (%d) != 200, updated state to SUB_STATE_FAILED.\n", status);
gw_sub_ptr->state = SUB_STATE_FAILED;
+
+ if (sofia_private) {
+ nua_handle_destroy(sofia_private->gateway->sub_nh);
+ sofia_private->gateway->sub_nh = NULL;
+ nua_handle_bind(sofia_private->gateway->sub_nh, NULL);
+ sofia_private_free(sofia_private);
+ } else {
+ nua_handle_destroy(nh);
+ }
+
break;
}
}

View File

@ -1,5 +0,0 @@
--- libzrtp-0.81.514.orig/third_party/bnlib/cfg.debug 2009-03-22 08:26:34.000000000 -0500
+++ libzrtp-0.81.514.patched/third_party/bnlib/cfg.debug 2009-05-20 11:42:52.000000000 -0500
@@ -1 +1 @@
-./configure CFLAGS="-O0 -g3"
+./configure CFLAGS="-O0 -g3 -fPIC"