From 446d72855350e43d791664f8a3212f35fbcae9f1 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Fri, 14 Nov 2008 02:46:28 +0000 Subject: [PATCH] doh git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@10394 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/include/switch_xml.h | 5 ++++- src/switch_xml.c | 7 ++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/include/switch_xml.h b/src/include/switch_xml.h index 43b58c399d..06ac3fe11e 100644 --- a/src/include/switch_xml.h +++ b/src/include/switch_xml.h @@ -353,7 +353,10 @@ SWITCH_DECLARE(switch_xml_t) switch_xml_open_cfg(const char *file_path, switch_x ///\param user_data a pointer to private data to be used during the callback ///\return SWITCH_STATUS_SUCCESS if successful ///\note gateway functions will be executed in the order they were binded until a success is found else the root registry will be used -SWITCH_DECLARE(switch_status_t) switch_xml_bind_search_function(switch_xml_search_function_t function, switch_xml_section_t sections, void *user_data); + +SWITCH_DECLARE(switch_status_t) switch_xml_bind_search_function_ret(switch_xml_search_function_t function, switch_xml_section_t sections, void *user_data, switch_xml_binding_t **ret); +#define switch_xml_bind_search_function(_f, _s, _u) switch_xml_bind_search_function_ret(_u, _s, _u, NULL) + SWITCH_DECLARE(switch_status_t) switch_xml_unbind_search_function(switch_xml_binding_t **binding); SWITCH_DECLARE(switch_status_t) switch_xml_unbind_search_function_ptr(switch_xml_search_function_t function); diff --git a/src/switch_xml.c b/src/switch_xml.c index ab69570bb5..bf7e60230a 100644 --- a/src/switch_xml.c +++ b/src/switch_xml.c @@ -228,7 +228,7 @@ SWITCH_DECLARE(switch_status_t) switch_xml_unbind_search_function_ptr(switch_xml return status; } -SWITCH_DECLARE(switch_status_t) switch_xml_bind_search_function(switch_xml_search_function_t function, switch_xml_section_t sections, void *user_data) +SWITCH_DECLARE(switch_status_t) switch_xml_bind_search_function_ret(switch_xml_search_function_t function, switch_xml_section_t sections, void *user_data, switch_xml_binding_t **ret) { switch_xml_binding_t *binding = NULL, *ptr = NULL; assert(function != NULL); @@ -249,6 +249,11 @@ SWITCH_DECLARE(switch_status_t) switch_xml_bind_search_function(switch_xml_searc } else { BINDINGS = binding; } + + if (ret) { + *ret = binding; + } + switch_thread_rwlock_unlock(B_RWLOCK); return SWITCH_STATUS_SUCCESS;