]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
CGI specifies that REQUEST_URI is relative to the root (and does not include scheme...
authorDaniel Swarbrick <daniel.swarbrick@gmail.com>
Wed, 8 Aug 2012 12:08:31 +0000 (14:08 +0200)
committerDaniel Swarbrick <daniel.swarbrick@gmail.com>
Wed, 8 Aug 2012 12:08:31 +0000 (14:08 +0200)
src/mod/xml_int/mod_xml_scgi/mod_xml_scgi.c

index 1ac74ebbdf78ab2f19bf4b6826bfe28654b220ec..a0898fb1cdbd131d364b5ea26bbab99db745b76d 100644 (file)
@@ -40,6 +40,7 @@ SWITCH_MODULE_DEFINITION(mod_xml_scgi, mod_xml_scgi_load, mod_xml_scgi_shutdown,
 struct xml_binding {
        char *host;
        switch_port_t port;
+       char *uri;
        char *url;
 
        int timeout;
@@ -144,7 +145,7 @@ static switch_xml_t xml_url_fetch(const char *section, const char *tag_name, con
        switch_stream_handle_t stream = { 0 };
        char *txt = NULL;
 
-    strncpy(hostname, switch_core_get_switchname(), sizeof(hostname));
+       strncpy(hostname, switch_core_get_switchname(), sizeof(hostname));
 
        if (!binding) {
                return NULL;
@@ -157,7 +158,7 @@ static switch_xml_t xml_url_fetch(const char *section, const char *tag_name, con
        switch_assert(data);
 
        scgi_add_param(&handle, "REQUEST_METHOD", "POST");
-       scgi_add_param(&handle, "REQUEST_URI", binding->url);
+       scgi_add_param(&handle, "REQUEST_URI", binding->uri);
        scgi_add_body(&handle, data);
 
        if (scgi_connect(&handle, binding->host, binding->port, binding->timeout * 1000) == SCGI_SUCCESS) {
@@ -318,6 +319,7 @@ static switch_status_t do_config(void)
                binding->host = switch_core_strdup(globals.pool, host);
                binding->port = atoi(port);
                binding->vars_map = vars_map;
+               binding->uri = switch_mprintf("/%s", bname);
                binding->url = switch_mprintf("scgi://%s:%s/%s", host, port, bname);
 
                if (server) {