[commit] r4965 - in freeswitch/trunk/src: . include mod/dialplans/mod_dialplan_xml
Author: anthm Date: Tue Apr 17 11:58:52 2007 New Revision: 4965 Modified: freeswitch/trunk/src/include/switch_xml.h freeswitch/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c freeswitch/trunk/src/switch_xml.c Log: update Modified: freeswitch/trunk/src/include/switch_xml.h ============================================================================== --- freeswitch/trunk/src/include/switch_xml.h (original) +++ freeswitch/trunk/src/include/switch_xml.h Tue Apr 17 11:58:52 2007 @@ -117,6 +117,8 @@ ///\return a formated xml node or NULL SWITCH_DECLARE(switch_xml_t) switch_xml_parse_file(const char *file); +SWITCH_DECLARE(switch_xml_t) switch_xml_parse_file_simple(const char *file); + ///\brief Wrapper for switch_xml_parse_str() that accepts a file stream. Reads the entire ///\ stream into memory and then parses it. For xml files, use switch_xml_parse_file() ///\ or switch_xml_parse_fd() Modified: freeswitch/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c ============================================================================== --- freeswitch/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c (original) +++ freeswitch/trunk/src/mod/dialplans/mod_dialplan_xml/mod_dialplan_xml.c Tue Apr 17 11:58:52 2007 @@ -316,7 +316,7 @@ if (!switch_strlen_zero(alt_path)) { switch_xml_t conf = NULL, tag = NULL; - if (!(alt_root = switch_xml_parse_file(alt_path))) { + if (!(alt_root = switch_xml_parse_file_simple(alt_path))) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "open of [%s] failed\n", alt_path); goto done; } Modified: freeswitch/trunk/src/switch_xml.c ============================================================================== --- freeswitch/trunk/src/switch_xml.c (original) +++ freeswitch/trunk/src/switch_xml.c Tue Apr 17 11:58:52 2007 @@ -1032,7 +1032,26 @@ return write_fd; } -// a wrapper for switch_xml_parse_fd that accepts a file name +SWITCH_DECLARE(switch_xml_t) switch_xml_parse_file_simple(const char *file) +{ + int fd = -1; + struct stat st; + switch_size_t l; + void *m; + switch_xml_root_t root; + + if ((fd = open(file, O_RDONLY, 0)) > -1) { + fstat(fd, &st); + l = read(fd, m = malloc(st.st_size), st.st_size); + root = (switch_xml_root_t) switch_xml_parse_str(m, l); + root->dynamic = 1; + close(fd); + return &root->xml; + } + + return NULL; +} + SWITCH_DECLARE(switch_xml_t) switch_xml_parse_file(const char *file) { int fd = -1, write_fd = -1; @@ -1045,7 +1064,7 @@ } else { abs = file; } - + if (!(new_file = switch_mprintf("%s%s%s.fsxml", SWITCH_GLOBAL_dirs.log_dir, SWITCH_PATH_SEPARATOR, abs))) { return NULL; }
participants (1)
-
Freeswitch SVN