From ac635d02de202523d8921ce752d7f93e2377bb07 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Thu, 22 Nov 2012 00:46:57 +0000 Subject: [PATCH] web_server: Properly set SCRIPT_NAME and PATH_INFO. Reviewed-by: Matthieu Patou --- 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 4d2b36358b8..e3e5a0fa319 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)); -- 2.34.1