Changeset 58:a441a02fc46d

Show
Ignore:
Timestamp:
12/29/06 10:27:02 (2 years ago)
Author:
Allan Saddi <allan@saddi.com>
branch:
default
convert_revision:
svn:46762da8-4eb7-0310-94e9-d918b60927c8/flup/trunk@2305
Message:

Back out previous commit. PATH_INFO is still not set
correctly by mod_scgi.

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • ChangeLog

    r57 r58  
    112006-12-29  Allan Saddi  <allan@saddi.com> 
     2 
     3        * Back out previous commit. PATH_INFO is still not set 
     4          correctly by mod_scgi. 
    25 
    36        * Deprecate WSGI_SCRIPT_NAME and scriptName in scgi_base. 
  • flup/server/scgi.py

    r57 r58  
    6767import socket 
    6868 
    69 from flup.server.scgi_base import BaseSCGIServer, Connection, NoDefault 
     69from flup.server.scgi_base import BaseSCGIServer, Connection 
    7070from flup.server.threadedserver import ThreadedServer 
    7171 
     
    8888    mind running in multiple processes, go use SWAP. ;) 
    8989    """ 
    90     def __init__(self, application, scriptName=NoDefault, environ=None, 
     90    def __init__(self, application, scriptName='', environ=None, 
    9191                 multithreaded=True, multiprocess=False, 
    9292                 bindAddress=('localhost', 4000), umask=None, 
  • flup/server/scgi_base.py

    r57 r58  
    3737import datetime 
    3838import os 
    39 import warnings 
    4039 
    4140# Threads are required. If you want a non-threaded (forking) version, look at 
     
    275274    requestClass = Request 
    276275 
    277     def __init__(self, application, scriptName=NoDefault, environ=None, 
     276    def __init__(self, application, scriptName='', environ=None, 
    278277                 multithreaded=True, multiprocess=False, 
    279278                 bindAddress=('localhost', 4000), umask=None, 
     
    473472    def _sanitizeEnv(self, environ): 
    474473        """Fill-in/deduce missing values in environ.""" 
    475         # Ensure QUERY_STRING exists 
    476         if not environ.has_key('QUERY_STRING'): 
    477             environ['QUERY_STRING'] = '' 
    478  
    479         # Check WSGI_SCRIPT_NAME 
     474        # Namely SCRIPT_NAME/PATH_INFO 
    480475        scriptName = environ.get('WSGI_SCRIPT_NAME') 
    481476        if scriptName is None: 
    482477            scriptName = self.scriptName 
    483         else: 
    484             warnings.warn('WSGI_SCRIPT_NAME environment variable for scgi ' 
    485                           'servers is deprecated', 
    486                           DeprecationWarning) 
    487             if scriptName.lower() == 'none': 
    488                 scriptName = None 
     478        elif scriptName.lower() == 'none': 
     479            scriptName = None 
    489480 
    490481        if scriptName is None: 
     
    492483            return 
    493484 
    494         if scriptName is NoDefault: 
    495             # Pull SCRIPT_NAME/PATH_INFO from environment, with empty defaults 
    496             if not environ.has_key('SCRIPT_NAME'): 
    497                 environ['SCRIPT_INFO'] = '' 
    498             if not environ.has_key('PATH_INFO'): 
    499                 environ['PATH_INFO'] = '' 
    500         else: 
    501             # Configured scriptName 
    502             warnings.warn('Configured SCRIPT_NAME is deprecated\n' 
    503                           'Do not use WSGI_SCRIPT_NAME or the scriptName\n' 
    504                           'keyword parameter -- they will be going away', 
    505                           DeprecationWarning) 
    506  
    507             value = environ['SCRIPT_NAME'] 
    508             value += environ.get('PATH_INFO', '') 
    509             if not value.startswith(scriptName): 
    510                 self.logger.warning('scriptName does not match request URI') 
    511  
    512             environ['PATH_INFO'] = value[len(scriptName):] 
    513             environ['SCRIPT_NAME'] = scriptName 
     485        value = environ['SCRIPT_NAME'] 
     486        # Pull PATH_INFO from environ, if it exists. (cgi2scgi actually 
     487        # passes it in.) 
     488        value += environ.get('PATH_INFO', '') 
     489        if not value.startswith(scriptName): 
     490            self.logger.warning('scriptName does not match request URI') 
     491 
     492        environ['PATH_INFO'] = value[len(scriptName):] 
     493        environ['SCRIPT_NAME'] = scriptName 
     494 
     495        if not environ.has_key('QUERY_STRING'): 
     496            environ['QUERY_STRING'] = '' 
    514497 
    515498    def error(self, request): 
  • flup/server/scgi_fork.py

    r57 r58  
    6767import socket 
    6868 
    69 from flup.server.scgi_base import BaseSCGIServer, Connection, NoDefault 
     69from flup.server.scgi_base import BaseSCGIServer, Connection 
    7070from flup.server.preforkserver import PreforkServer 
    7171 
     
    8888    mind running in multiple processes, go use SWAP. ;) 
    8989    """ 
    90     def __init__(self, application, scriptName=NoDefault, environ=None, 
     90    def __init__(self, application, scriptName='', environ=None, 
    9191                 bindAddress=('localhost', 4000), umask=None, 
    9292                 allowedServers=None,