Revision
16644
Author
brian
Date
2010-02-15 11:40:13 -0600 (Mon, 15 Feb 2010)

Log Message

fix vm to inherit params from domain/group

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/applications/mod_voicemail/mod_voicemail.c (16643 => 16644)


--- freeswitch/trunk/src/mod/applications/mod_voicemail/mod_voicemail.c	2010-02-15 17:11:14 UTC (rev 16643)
+++ freeswitch/trunk/src/mod/applications/mod_voicemail/mod_voicemail.c	2010-02-15 17:40:13 UTC (rev 16644)
@@ -2821,7 +2821,7 @@
 	const char *read_id = NULL;
 	const char *caller_id_name = NULL;
 	const char *caller_id_number = NULL;
-	switch_xml_t x_domain = NULL, x_domain_root = NULL, x_user = NULL, x_params = NULL, x_param = NULL;
+	switch_xml_t x_user = NULL, x_params = NULL, x_param = NULL;
 	switch_event_t *vars = NULL;
 	const char *vm_cc = NULL, *vtmp, *vm_ext = NULL;
 	int disk_quota = 0;
@@ -2845,22 +2845,15 @@
 		int ok = 1;
 		switch_event_t *locate_params = NULL;
 		const char *email_addr = NULL;
-		char *x;
+		
 
-
 		switch_event_create(&locate_params, SWITCH_EVENT_REQUEST_PARAMS);
 		switch_assert(locate_params);
 
-		if (switch_xml_locate_user("id", id, domain_name, switch_channel_get_variable(channel, "network_addr"),
-								   &x_domain_root, &x_domain, &x_user, NULL, locate_params) == SWITCH_STATUS_SUCCESS) {
+		if (switch_xml_locate_user_merged("id", id, domain_name, switch_channel_get_variable(channel, "network_addr"),
+										  &x_user, locate_params) == SWITCH_STATUS_SUCCESS) {
 			id = switch_core_session_strdup(session, switch_xml_attr(x_user, "id"));
 
-			x = switch_xml_toxml(x_user, SWITCH_FALSE);
-			x_user = switch_xml_parse_str_dynamic(x, SWITCH_FALSE);
-			x_domain = NULL;
-			switch_xml_free(x_domain_root);
-			x_domain_root = NULL;
-
 			if ((x_params = switch_xml_child(x_user, "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");

Modified: freeswitch/trunk/src/switch_xml.c (16643 => 16644)


--- freeswitch/trunk/src/switch_xml.c	2010-02-15 17:11:14 UTC (rev 16643)
+++ freeswitch/trunk/src/switch_xml.c	2010-02-15 17:40:13 UTC (rev 16644)
@@ -1781,7 +1781,8 @@
 			
 			if (go) {
 				iitag = switch_xml_add_child_d(itag, tag_name, 0);
-				switch_xml_set_attr_d(iitag, var, val);
+				switch_xml_set_attr_d(iitag, "name", var);
+				switch_xml_set_attr_d(iitag, "value", val);
 			}
 		}
 	}
@@ -1808,6 +1809,7 @@
 		x_user_dup = switch_xml_dup(x_user);
 		switch_xml_merge_user(x_user_dup, domain, group);
 		*user = x_user_dup;
+		switch_xml_free(xml);
 	}
 
 	return status;