web_server: Properly set SCRIPT_NAME and PATH_INFO.
authorJelmer Vernooij <jelmer@samba.org>
Thu, 22 Nov 2012 00:46:57 +0000 (00:46 +0000)
committerMatthieu Patou <mat@matws.net>
Thu, 22 Nov 2012 22:57:42 +0000 (14:57 -0800)
Reviewed-by: Matthieu Patou <mat@matws.net>
source4/web_server/wsgi.c

index 4d2b36358b8663b4b27faa8b994e1b1e1a60e2aa..e3e5a0fa3195a2e6a36bb6d36007ce38f3103fa4 100644 (file)
@@ -292,12 +292,15 @@ static PyObject *create_environ(bool tls, int content_length, struct http_header
        }
        PyDict_SetItemString(env, "REQUEST_METHOD", PyString_FromString(request_method));
 
+       /* There is always a single wsgi app to which all requests are redirected,
+        * so SCRIPT_NAME will be / */
+       PyDict_SetItemString(env, "SCRIPT_NAME", PyString_FromString("/"));
        questionmark = strchr(request_string, '?');
        if (questionmark == NULL) {
-               PyDict_SetItemString(env, "SCRIPT_NAME", PyString_FromString(request_string));
+               PyDict_SetItemString(env, "PATH_INFO", PyString_FromString(request_string));
        } else {
                PyDict_SetItemString(env, "QUERY_STRING", PyString_FromString(questionmark+1));
-               PyDict_SetItemString(env, "SCRIPT_NAME", PyString_FromStringAndSize(request_string, questionmark-request_string));
+               PyDict_SetItemString(env, "PATH_INFO", PyString_FromStringAndSize(request_string, questionmark-request_string));
        }
        
        PyDict_SetItemString(env, "SERVER_NAME", PyString_FromString(servername));