From 6bc24b8c98a92fb4eec556e0587f5c2cdb37ab05 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 22 Jan 2009 19:06:48 +0000 Subject: [PATCH] fix domain param lookup git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@11369 d0543943-73ff-0310-b7d9-9358b9ac24b2 --- src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c | 29 +++++++++++++---------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c index fd1a19d38d..6fb6384c0a 100644 --- a/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c +++ b/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c @@ -148,7 +148,7 @@ static switch_status_t http_stream_write(switch_stream_handle_t *handle, const c return ret ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS; } -static abyss_bool http_directory_auth(TSession * r, char *domain_name) +static abyss_bool http_directory_auth(TSession *r, char *domain_name) { char *p; char *x; @@ -210,7 +210,7 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name) switch_event_create(¶ms, SWITCH_EVENT_REQUEST_PARAMS); switch_assert(params); switch_event_add_header_string(params, SWITCH_STACK_BOTTOM, "mailbox", "check"); - + if (switch_xml_locate_user("id", user, domain_name, NULL, &x_domain_root, &x_domain, &x_user, NULL, params) != SWITCH_STATUS_SUCCESS) { switch_event_destroy(¶ms); goto fail; @@ -218,17 +218,20 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name) switch_event_destroy(¶ms); box = switch_xml_attr_soft(x_user, "mailbox"); - - for (x_param = switch_xml_child(x_domain, "param"); x_param; x_param = x_param->next) { - const char *var = switch_xml_attr_soft(x_param, "name"); - const char *val = switch_xml_attr_soft(x_param, "value"); - if (!strcasecmp(var, "password")) { - mypass1 = val; - } else if (!strcasecmp(var, "vm-password")) { - mypass2 = val; - } else if (!strncasecmp(var, "http-", 5)) { - ResponseAddField(r, (char *) var, (char *) val); + if ((x_params = switch_xml_child(x_domain, "params"))) { + + for (x_param = switch_xml_child(x_params, "param"); x_param; x_param = x_param->next) { + const char *var = switch_xml_attr_soft(x_param, "name"); + const char *val = switch_xml_attr_soft(x_param, "value"); + + if (!strcasecmp(var, "password")) { + mypass1 = val; + } else if (!strcasecmp(var, "vm-password")) { + mypass2 = val; + } else if (!strncasecmp(var, "http-", 5)) { + ResponseAddField(r, (char *) var, (char *) val); + } } } @@ -240,7 +243,7 @@ static abyss_bool http_directory_auth(TSession * r, char *domain_name) for (x_param = switch_xml_child(x_params, "param"); x_param; x_param = x_param->next) { const char *var = switch_xml_attr_soft(x_param, "name"); const char *val = switch_xml_attr_soft(x_param, "value"); - + if (!strcasecmp(var, "password")) { mypass1 = val; } else if (!strcasecmp(var, "vm-password")) {