diff options
author | Allan Saddi <allan@saddi.com> | 2006-12-29 18:27:02 +0000 |
---|---|---|
committer | Allan Saddi <allan@saddi.com> | 2006-12-29 18:27:02 +0000 |
commit | 6494b543a6f1222631355fd8f2eb68aa6daae6ea (patch) | |
tree | f35674c8b261e4e3435b6f750ce6359a6d41a343 /flup | |
parent | 2c0357f8f3d4cd595c903a71eea1c1ff08e37660 (diff) | |
download | flup-6494b543a6f1222631355fd8f2eb68aa6daae6ea.tar.gz |
Back out previous commit. PATH_INFO is still not set
correctly by mod_scgi.
Diffstat (limited to 'flup')
-rw-r--r-- | flup/server/scgi.py | 4 | ||||
-rw-r--r-- | flup/server/scgi_base.py | 49 | ||||
-rw-r--r-- | flup/server/scgi_fork.py | 4 |
3 files changed, 20 insertions, 37 deletions
diff --git a/flup/server/scgi.py b/flup/server/scgi.py index ada352e..ee9d769 100644 --- a/flup/server/scgi.py +++ b/flup/server/scgi.py @@ -66,7 +66,7 @@ __version__ = '$Revision$' import logging import socket -from flup.server.scgi_base import BaseSCGIServer, Connection, NoDefault +from flup.server.scgi_base import BaseSCGIServer, Connection from flup.server.threadedserver import ThreadedServer __all__ = ['WSGIServer'] @@ -87,7 +87,7 @@ class WSGIServer(BaseSCGIServer, ThreadedServer): of preforking to be quite superior. So if your application really doesn't mind running in multiple processes, go use SWAP. ;) """ - def __init__(self, application, scriptName=NoDefault, environ=None, + def __init__(self, application, scriptName='', environ=None, multithreaded=True, multiprocess=False, bindAddress=('localhost', 4000), umask=None, allowedServers=None, diff --git a/flup/server/scgi_base.py b/flup/server/scgi_base.py index 0bcb652..a1d4d86 100644 --- a/flup/server/scgi_base.py +++ b/flup/server/scgi_base.py @@ -36,7 +36,6 @@ import cStringIO as StringIO import signal import datetime import os -import warnings # Threads are required. If you want a non-threaded (forking) version, look at # SWAP <http://www.idyll.org/~t/www-tools/wsgi/>. @@ -274,7 +273,7 @@ class BaseSCGIServer(object): # What Request class to use. requestClass = Request - def __init__(self, application, scriptName=NoDefault, environ=None, + def __init__(self, application, scriptName='', environ=None, multithreaded=True, multiprocess=False, bindAddress=('localhost', 4000), umask=None, allowedServers=NoDefault, @@ -472,45 +471,29 @@ class BaseSCGIServer(object): def _sanitizeEnv(self, environ): """Fill-in/deduce missing values in environ.""" - # Ensure QUERY_STRING exists - if not environ.has_key('QUERY_STRING'): - environ['QUERY_STRING'] = '' - - # Check WSGI_SCRIPT_NAME + # Namely SCRIPT_NAME/PATH_INFO scriptName = environ.get('WSGI_SCRIPT_NAME') if scriptName is None: scriptName = self.scriptName - else: - warnings.warn('WSGI_SCRIPT_NAME environment variable for scgi ' - 'servers is deprecated', - DeprecationWarning) - if scriptName.lower() == 'none': - scriptName = None + elif scriptName.lower() == 'none': + scriptName = None if scriptName is None: # Do nothing (most likely coming from cgi2scgi) return - if scriptName is NoDefault: - # Pull SCRIPT_NAME/PATH_INFO from environment, with empty defaults - if not environ.has_key('SCRIPT_NAME'): - environ['SCRIPT_INFO'] = '' - if not environ.has_key('PATH_INFO'): - environ['PATH_INFO'] = '' - else: - # Configured scriptName - warnings.warn('Configured SCRIPT_NAME is deprecated\n' - 'Do not use WSGI_SCRIPT_NAME or the scriptName\n' - 'keyword parameter -- they will be going away', - DeprecationWarning) - - value = environ['SCRIPT_NAME'] - value += environ.get('PATH_INFO', '') - if not value.startswith(scriptName): - self.logger.warning('scriptName does not match request URI') - - environ['PATH_INFO'] = value[len(scriptName):] - environ['SCRIPT_NAME'] = scriptName + value = environ['SCRIPT_NAME'] + # Pull PATH_INFO from environ, if it exists. (cgi2scgi actually + # passes it in.) + value += environ.get('PATH_INFO', '') + if not value.startswith(scriptName): + self.logger.warning('scriptName does not match request URI') + + environ['PATH_INFO'] = value[len(scriptName):] + environ['SCRIPT_NAME'] = scriptName + + if not environ.has_key('QUERY_STRING'): + environ['QUERY_STRING'] = '' def error(self, request): """ diff --git a/flup/server/scgi_fork.py b/flup/server/scgi_fork.py index ce04899..46cb1e0 100644 --- a/flup/server/scgi_fork.py +++ b/flup/server/scgi_fork.py @@ -66,7 +66,7 @@ __version__ = '$Revision$' import logging import socket -from flup.server.scgi_base import BaseSCGIServer, Connection, NoDefault +from flup.server.scgi_base import BaseSCGIServer, Connection from flup.server.preforkserver import PreforkServer __all__ = ['WSGIServer'] @@ -87,7 +87,7 @@ class WSGIServer(BaseSCGIServer, PreforkServer): of preforking to be quite superior. So if your application really doesn't mind running in multiple processes, go use SWAP. ;) """ - def __init__(self, application, scriptName=NoDefault, environ=None, + def __init__(self, application, scriptName='', environ=None, bindAddress=('localhost', 4000), umask=None, allowedServers=None, loggingLevel=logging.INFO, debug=True, **kw): |