From 1723c12ede534d5629d17acfd248b838ef3e1787 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Wed, 19 Mar 2014 03:02:49 +0000 Subject: [PATCH] Remove completely obsolete patches from tree These haven't been touched in years; they can't possibly still be applicable. --- patches/MODAPP-293.diff | 26 -- patches/mod_portaudio_snow_leopard.diff | 170 ----------- patches/sofia.diff | 383 ------------------------ patches/zrtp_bnlib_pic.diff | 5 - 4 files changed, 584 deletions(-) delete mode 100644 patches/MODAPP-293.diff delete mode 100644 patches/mod_portaudio_snow_leopard.diff delete mode 100644 patches/sofia.diff delete mode 100644 patches/zrtp_bnlib_pic.diff diff --git a/patches/MODAPP-293.diff b/patches/MODAPP-293.diff deleted file mode 100644 index dfb109d423..0000000000 --- a/patches/MODAPP-293.diff +++ /dev/null @@ -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) diff --git a/patches/mod_portaudio_snow_leopard.diff b/patches/mod_portaudio_snow_leopard.diff deleted file mode 100644 index 7333965400..0000000000 --- a/patches/mod_portaudio_snow_leopard.diff +++ /dev/null @@ -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) diff --git a/patches/sofia.diff b/patches/sofia.diff deleted file mode 100644 index 82e39d10e7..0000000000 --- a/patches/sofia.diff +++ /dev/null @@ -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; - } - } diff --git a/patches/zrtp_bnlib_pic.diff b/patches/zrtp_bnlib_pic.diff deleted file mode 100644 index d9b98f408b..0000000000 --- a/patches/zrtp_bnlib_pic.diff +++ /dev/null @@ -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"