git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6455 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
Anthony Minessale 2007-11-30 23:45:27 +00:00
parent a8433a1956
commit dc96942b88
10 changed files with 23 additions and 26 deletions

View File

@ -190,8 +190,8 @@ SWITCH_DECLARE(switch_xml_t) switch_xml_get(switch_xml_t xml,...);
///\ must be freed. ///\ must be freed.
///\param xml the xml node ///\param xml the xml node
///\return the xml text string ///\return the xml text string
SWITCH_DECLARE(char *) switch_xml_toxml(switch_xml_t xml); SWITCH_DECLARE(char *) switch_xml_toxml(switch_xml_t xml, switch_bool_t prn_header);
SWITCH_DECLARE(char *) switch_xml_toxml_buf(switch_xml_t xml, char *buf, switch_size_t buflen, switch_size_t offset); SWITCH_DECLARE(char *) switch_xml_toxml_buf(switch_xml_t xml, char *buf, switch_size_t buflen, switch_size_t offset, switch_bool_t prn_header);
///\brief returns a NULL terminated array of processing instructions for the given ///\brief returns a NULL terminated array of processing instructions for the given
///\ target ///\ target

View File

@ -47,7 +47,7 @@ SWITCH_STANDARD_API(find_user_function)
int argc; int argc;
char *mydata = NULL, *argv[3]; char *mydata = NULL, *argv[3];
char *key, *user, *domain; char *key, *user, *domain;
char *xmlstr, *xs; char *xmlstr;
if (!cmd) { if (!cmd) {
stream->write_function(stream, "bad args\n"); stream->write_function(stream, "bad args\n");
@ -82,14 +82,10 @@ SWITCH_STANDARD_API(find_user_function)
end: end:
if (xml && x_user) { if (xml && x_user) {
xmlstr = switch_xml_toxml(x_user); xmlstr = switch_xml_toxml(x_user, SWITCH_FALSE);
assert(xmlstr); assert(xmlstr);
if ((xs = strstr(xmlstr, "?>"))) {
xs += 2; stream->write_function(stream, "%s", xmlstr);
} else {
xs = xmlstr;
}
stream->write_function(stream, "%s", xs);
free(xmlstr); free(xmlstr);
switch_xml_free(xml); switch_xml_free(xml);
@ -1607,7 +1603,7 @@ SWITCH_STANDARD_API(show_function)
snprintf(count, sizeof(count), "%d", holder.count); snprintf(count, sizeof(count), "%d", holder.count);
switch_xml_set_attr(switch_xml_set_flag(holder.xml, SWITCH_XML_DUP), strdup("row_count"), strdup(count)); switch_xml_set_attr(switch_xml_set_flag(holder.xml, SWITCH_XML_DUP), strdup("row_count"), strdup(count));
xmlstr = switch_xml_toxml(holder.xml); xmlstr = switch_xml_toxml(holder.xml, SWITCH_FALSE);
if (xmlstr) { if (xmlstr) {
holder.stream->write_function(holder.stream, "%s", xmlstr); holder.stream->write_function(holder.stream, "%s", xmlstr);

View File

@ -527,7 +527,7 @@ SWITCH_STANDARD_API(fifo_api_function)
switch_mutex_unlock(node->mutex); switch_mutex_unlock(node->mutex);
} }
} }
xml_text = switch_xml_toxml(x_report); xml_text = switch_xml_toxml(x_report, SWITCH_FALSE);
assert(xml_text); assert(xml_text);
stream->write_function(stream, "%s\n", xml_text); stream->write_function(stream, "%s\n", xml_text);
switch_xml_free(x_report); switch_xml_free(x_report);

View File

@ -2595,7 +2595,7 @@ static void do_rss(vm_profile_t *profile, char *user, char *domain, char *host,
sql = switch_mprintf("select * from voicemail_data where user='%s' and domain='%s' order by read_flags", user, domain); sql = switch_mprintf("select * from voicemail_data where user='%s' and domain='%s' order by read_flags", user, domain);
vm_execute_sql_callback(profile, profile->mutex, sql, rss_callback, &holder); vm_execute_sql_callback(profile, profile->mutex, sql, rss_callback, &holder);
xmlstr = switch_xml_toxml(holder.xml); xmlstr = switch_xml_toxml(holder.xml, SWITCH_TRUE);
stream->write_function(stream, "%s", xmlstr); stream->write_function(stream, "%s", xmlstr);

View File

@ -731,7 +731,7 @@ static void dl_logger(char *file, const char *func, int line, int level, char *f
*xmltxt++ = '\0'; *xmltxt++ = '\0';
if (strlen(xmltxt) > 2) { if (strlen(xmltxt) > 2) {
xml = switch_xml_parse_str(xmltxt, strlen(xmltxt)); xml = switch_xml_parse_str(xmltxt, strlen(xmltxt));
form = switch_xml_toxml(xml); form = switch_xml_toxml(xml, SWITCH_FALSE);
switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, level, switch_log_printf(SWITCH_CHANNEL_ID_LOG, file, func, line, NULL, level,
"%s:\n-------------------------------------------------------------------------------\n" "%s:\n-------------------------------------------------------------------------------\n"
"%s\n", ll, form); "%s\n", ll, form);
@ -2301,7 +2301,7 @@ static void do_vcard(ldl_handle_t *handle, char *to, char *from, char *id)
switch_xml_set_attr(vcard, "xmlns", "vcard-tmp"); switch_xml_set_attr(vcard, "xmlns", "vcard-tmp");
if ((xmlstr = switch_xml_toxml(vcard))) { if ((xmlstr = switch_xml_toxml(vcard, SWITCH_FALSE))) {
ldl_handle_send_vcard(handle, to, from, id, xmlstr); ldl_handle_send_vcard(handle, to, from, id, xmlstr);
sent = 1; sent = 1;
} else { } else {

View File

@ -471,7 +471,7 @@ static switch_status_t read_packet(listener_t * listener, switch_event_t **event
etype = "xml"; etype = "xml";
if ((xml = switch_event_xmlize(event, "%s", ""))) { if ((xml = switch_event_xmlize(event, "%s", ""))) {
listener->ebuf = switch_xml_toxml(xml); listener->ebuf = switch_xml_toxml(xml, SWITCH_FALSE);
switch_xml_free(xml); switch_xml_free(xml);
} else { } else {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "XML ERROR!\n"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "XML ERROR!\n");

View File

@ -50,7 +50,7 @@ static void event_handler(switch_event_t *event)
default: default:
switch_event_serialize(event, &buf); switch_event_serialize(event, &buf);
if ((xml = switch_event_xmlize(event, NULL))) { if ((xml = switch_event_xmlize(event, NULL))) {
xmlstr = switch_xml_toxml(xml); xmlstr = switch_xml_toxml(xml, SWITCH_FALSE);
dofree++; dofree++;
} }

View File

@ -237,7 +237,7 @@ static JSBool request_dump_env(JSContext *cx, JSObject *obj, uintN argc, jsval *
switch_xml_t xml; switch_xml_t xml;
char *xmlstr; char *xmlstr;
if ((xml = switch_event_xmlize(ro->stream->event, SWITCH_VA_NONE))) { if ((xml = switch_event_xmlize(ro->stream->event, SWITCH_VA_NONE))) {
xmlstr = switch_xml_toxml(xml); xmlstr = switch_xml_toxml(xml, SWITCH_FALSE);
*rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, xmlstr)); *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, xmlstr));
return JS_TRUE; return JS_TRUE;
} }
@ -646,7 +646,7 @@ static JSBool event_serialize(JSContext * cx, JSObject * obj, uintN argc, jsval
switch_xml_t xml; switch_xml_t xml;
char *xmlstr; char *xmlstr;
if ((xml = switch_event_xmlize(eo->event, SWITCH_VA_NONE))) { if ((xml = switch_event_xmlize(eo->event, SWITCH_VA_NONE))) {
xmlstr = switch_xml_toxml(xml); xmlstr = switch_xml_toxml(xml, SWITCH_FALSE);
*rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, xmlstr)); *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, xmlstr));
switch_xml_free(xml); switch_xml_free(xml);
free(xmlstr); free(xmlstr);
@ -1898,7 +1898,7 @@ static JSBool session_cdr(JSContext * cx, JSObject * obj, uintN argc, jsval * ar
if (switch_ivr_generate_xml_cdr(jss->session, &cdr) == SWITCH_STATUS_SUCCESS) { if (switch_ivr_generate_xml_cdr(jss->session, &cdr) == SWITCH_STATUS_SUCCESS) {
char *xml_text; char *xml_text;
if ((xml_text = switch_xml_toxml(cdr))) { if ((xml_text = switch_xml_toxml(cdr, SWITCH_FALSE))) {
*rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, xml_text)); *rval = STRING_TO_JSVAL(JS_NewStringCopyZ(cx, xml_text));
} }
switch_safe_free(xml_text); switch_safe_free(xml_text);

View File

@ -76,7 +76,7 @@ static switch_status_t my_on_hangup(switch_core_session_t *session)
if (switch_ivr_generate_xml_cdr(session, &cdr) == SWITCH_STATUS_SUCCESS) { if (switch_ivr_generate_xml_cdr(session, &cdr) == SWITCH_STATUS_SUCCESS) {
/* build the XML */ /* build the XML */
if (!(xml_text = switch_xml_toxml(cdr))) { if (!(xml_text = switch_xml_toxml(cdr, SWITCH_TRUE))) {
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error!\n"); switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "Memory Error!\n");
goto error; goto error;
} }

View File

@ -1595,16 +1595,16 @@ static char *switch_xml_toxml_r(switch_xml_t xml, char **s, switch_size_t *len,
} }
} }
SWITCH_DECLARE(char *) switch_xml_toxml(switch_xml_t xml) SWITCH_DECLARE(char *) switch_xml_toxml(switch_xml_t xml, switch_bool_t prn_header)
{ {
char *s; char *s;
s = (char *)malloc(SWITCH_XML_BUFSIZE); s = (char *)malloc(SWITCH_XML_BUFSIZE);
return switch_xml_toxml_buf(xml, s, SWITCH_XML_BUFSIZE, 0); return switch_xml_toxml_buf(xml, s, SWITCH_XML_BUFSIZE, 0, prn_header);
} }
// converts an switch_xml structure back to xml, returning a string of xml date that // converts an switch_xml structure back to xml, returning a string of xml date that
// must be freed // must be freed
SWITCH_DECLARE(char *) switch_xml_toxml_buf(switch_xml_t xml, char *buf, switch_size_t buflen, switch_size_t offset) SWITCH_DECLARE(char *) switch_xml_toxml_buf(switch_xml_t xml, char *buf, switch_size_t buflen, switch_size_t offset, switch_bool_t prn_header)
{ {
switch_xml_t p = (xml) ? xml->parent : NULL, o = (xml) ? xml->ordered : NULL; switch_xml_t p = (xml) ? xml->parent : NULL, o = (xml) ? xml->ordered : NULL;
switch_xml_root_t root = (switch_xml_root_t) xml; switch_xml_root_t root = (switch_xml_root_t) xml;
@ -1617,8 +1617,9 @@ SWITCH_DECLARE(char *) switch_xml_toxml_buf(switch_xml_t xml, char *buf, switch_
assert(s != NULL); assert(s != NULL);
memset(s, 0, max); memset(s, 0, max);
len += offset; len += offset;
if (prn_header) {
len += sprintf(s + len, "<?xml version=\"1.0\"?>\n"); len += sprintf(s + len, "<?xml version=\"1.0\"?>\n");
}
if (!xml || !xml->name) { if (!xml || !xml->name) {
if (!(r = (char *)realloc(s, len + 1))) { if (!(r = (char *)realloc(s, len + 1))) {