[Freeswitch-svn] [commit] r11419 - in freeswitch/branches/1.0/src/mod: applications/mod_conference xml_int/mod_xml_rpc
FreeSWITCH SVN
mikej at freeswitch.org
Thu Jan 22 14:31:52 PST 2009
Author: mikej
Date: Thu Jan 22 16:31:52 2009
New Revision: 11419
Log:
mod_xml_rpc: fix http content types sent in responses (r:11099,11148,11150)
Modified:
freeswitch/branches/1.0/src/mod/applications/mod_conference/mod_conference.c
freeswitch/branches/1.0/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
Modified: freeswitch/branches/1.0/src/mod/applications/mod_conference/mod_conference.c
==============================================================================
--- freeswitch/branches/1.0/src/mod/applications/mod_conference/mod_conference.c (original)
+++ freeswitch/branches/1.0/src/mod/applications/mod_conference/mod_conference.c Thu Jan 22 16:31:52 2009
@@ -3895,7 +3895,7 @@
{
char *lbuf = NULL;
switch_status_t status = SWITCH_STATUS_SUCCESS;
- char *http = NULL;
+ char *http = NULL, *type = NULL;
int argc;
char *argv[25] = { 0 };
@@ -3905,11 +3905,14 @@
if (stream->param_event) {
http = switch_event_get_header(stream->param_event, "http-host");
+ type = switch_event_get_header(stream->param_event, "content-type");
}
if (http) {
/* Output must be to a web browser */
- stream->write_function(stream, "<pre>\n");
+ if (type && !strcasecmp(type, "text/html")) {
+ stream->write_function(stream, "<pre>\n");
+ }
}
if (!(lbuf = strdup(cmd))) {
Modified: freeswitch/branches/1.0/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c
==============================================================================
--- freeswitch/branches/1.0/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c (original)
+++ freeswitch/branches/1.0/src/mod/xml_int/mod_xml_rpc/mod_xml_rpc.c Thu Jan 22 16:31:52 2009
@@ -449,7 +449,7 @@
char *fs_user = NULL, *fs_domain = NULL;
char *path_info = NULL;
abyss_bool ret = TRUE;
- int html = 0, text = 0;
+ int html = 0, text = 0, xml = 0;
stream.data = r;
stream.write_function = http_stream_write;
@@ -467,6 +467,9 @@
} else if ((command = strstr(r->requestInfo.uri, "/txtapi/"))) {
command += 8;
text++;
+ } else if ((command = strstr(r->requestInfo.uri, "/xmlapi/"))) {
+ command += 8;
+ xml++;
} else {
return FALSE;
}
@@ -529,13 +532,15 @@
switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "Content-type", "text/html");
else if (text)
switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "Content-type", "text/plain");
+ else if (xml)
+ switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "Content-type", "text/xml");
if (fs_user)
switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "FreeSWITCH-User", fs_user);
if (fs_domain)
switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "FreeSWITCH-Domain", fs_domain);
if (path_info)
switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-Path-Info", path_info);
- switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-URI", r->requestInfo.uri);
+ switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-URI", r->requestInfo.uri);
if (r->requestInfo.query)
switch_event_add_header_string(stream.param_event, SWITCH_STACK_BOTTOM, "HTTP-QUERY", r->requestInfo.query);
if (r->requestInfo.host)
@@ -654,6 +659,8 @@
ResponseAddField(r, "Content-Type", "text/html");
} else if (text) {
ResponseAddField(r, "Content-Type", "text/plain");
+ } else if (xml) {
+ ResponseAddField(r, "Content-Type", "text/xml");
}
for (i = 0; i < r->response_headers.size; i++) {
@@ -667,7 +674,7 @@
switch_snprintf(buf, sizeof(buf), "Connection: close\r\n");
ConnWrite(r->conn, buf, (uint32_t) strlen(buf));
- if (html || text) {
+ if (html || text || xml) {
ConnWrite(r->conn, "\r\n", 2);
}
More information about the Freeswitch-svn
mailing list