diff --git a/src/mod/endpoints/mod_portaudio/mod_portaudio.c b/src/mod/endpoints/mod_portaudio/mod_portaudio.c index aa5857c532..5d424234db 100644 --- a/src/mod/endpoints/mod_portaudio/mod_portaudio.c +++ b/src/mod/endpoints/mod_portaudio/mod_portaudio.c @@ -567,6 +567,7 @@ SWITCH_MOD_DECLARE(switch_status_t) switch_module_load(const switch_loadable_mod static switch_status_t load_config(void) { char *cf = "portaudio.conf"; + switch_xml_t cfg, xml, settings, param; memset(&globals, 0, sizeof(globals)); diff --git a/src/switch_xml.c b/src/switch_xml.c index 2125f2f3b5..65a0d3a3b5 100644 --- a/src/switch_xml.c +++ b/src/switch_xml.c @@ -751,8 +751,10 @@ SWITCH_DECLARE(switch_status_t) switch_xml_locate(char *section, switch_xml_t tag = NULL; switch_xml_t xml = NULL; switch_xml_binding_t *binding; - + uint8_t loops = 0; + switch_mutex_lock(XML_LOCK); + for(binding = BINDINGS; binding; binding = binding->next) { if ((xml = binding->function(section, tag_name, key_name, key_value))) { const char *err = NULL; @@ -801,6 +803,9 @@ SWITCH_DECLARE(switch_status_t) switch_xml_locate(char *section, xml = NULL; *node = NULL; *root = NULL; + if (loops++ > 1) { + break; + } } }