[PATCH 4/7] web_server: Properly set SCRIPT_NAME and PATH_INFO.

Jelmer Vernooij jelmer at samba.org
Wed Nov 21 18:46:57 MST 2012


---
 source4/web_server/wsgi.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/source4/web_server/wsgi.c b/source4/web_server/wsgi.c
index 4d2b363..e3e5a0f 100644
--- a/source4/web_server/wsgi.c
+++ b/source4/web_server/wsgi.c
@@ -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));
-- 
1.8.0



More information about the samba-technical mailing list