diff options
author | Allan Saddi <allan@saddi.com> | 2005-05-18 23:13:01 +0000 |
---|---|---|
committer | Allan Saddi <allan@saddi.com> | 2005-05-18 23:13:01 +0000 |
commit | f3fb00ece0ca38ab13c8ba413e6c7b6e8fa59492 (patch) | |
tree | cca6502f5422eba66ee13aebd10c683152fd70db /flup | |
parent | 8f4e536580563b7aadbe71e722c475e81c679b4e (diff) | |
download | flup-f3fb00ece0ca38ab13c8ba413e6c7b6e8fa59492.tar.gz |
Change default allowedServers for ajp and scgi to ['127.0.0.1'].
Accept PATH_INFO from environment for scgi servers, in case
cgi2scgi is being used.
Diffstat (limited to 'flup')
-rw-r--r-- | flup/server/ajp_base.py | 10 | ||||
-rw-r--r-- | flup/server/scgi_base.py | 13 |
2 files changed, 19 insertions, 4 deletions
diff --git a/flup/server/ajp_base.py b/flup/server/ajp_base.py index e86792a..e6c7aee 100644 --- a/flup/server/ajp_base.py +++ b/flup/server/ajp_base.py @@ -43,6 +43,9 @@ import threading __all__ = ['BaseAJPServer'] +class NoDefault(object): + pass + # Packet header prefixes. SERVER_PREFIX = '\x12\x34' CONTAINER_PREFIX = 'AB' @@ -758,7 +761,7 @@ class BaseAJPServer(object): def __init__(self, application, scriptName='', environ=None, multithreaded=True, multiprocess=False, - bindAddress=('localhost', 8009), allowedServers=None, + bindAddress=('localhost', 8009), allowedServers=NoDefault, loggingLevel=logging.INFO): """ scriptName is the initial portion of the URL path that "belongs" @@ -781,7 +784,8 @@ class BaseAJPServer(object): allowedServers must be None or a list of strings representing the IPv4 addresses of servers allowed to connect. None means accept - connections from anywhere. + connections from anywhere. By default, it is a list containing + the single item '127.0.0.1'. loggingLevel sets the logging level of the module-level logger. """ @@ -794,6 +798,8 @@ class BaseAJPServer(object): self.multithreaded = multithreaded self.multiprocess = multiprocess self._bindAddress = bindAddress + if allowedServers is NoDefault: + allowedServers = ['127.0.0.1'] self._allowedServers = allowedServers # Used to force single-threadedness. diff --git a/flup/server/scgi_base.py b/flup/server/scgi_base.py index 8da1c36..be8dede 100644 --- a/flup/server/scgi_base.py +++ b/flup/server/scgi_base.py @@ -43,6 +43,9 @@ import threading __all__ = ['BaseSCGIServer'] +class NoDefault(object): + pass + # The main classes use this name for logging. LoggerName = 'scgi-wsgi' @@ -269,7 +272,7 @@ class BaseSCGIServer(object): def __init__(self, application, scriptName='', environ=None, multithreaded=True, multiprocess=False, - bindAddress=('localhost', 4000), allowedServers=None, + bindAddress=('localhost', 4000), allowedServers=NoDefault, loggingLevel=logging.INFO): """ scriptName is the initial portion of the URL path that "belongs" @@ -292,7 +295,8 @@ class BaseSCGIServer(object): allowedServers must be None or a list of strings representing the IPv4 addresses of servers allowed to connect. None means accept - connections from anywhere. + connections from anywhere. By default, it is a list containing + the single item '127.0.0.1'. loggingLevel sets the logging level of the module-level logger. """ @@ -305,6 +309,8 @@ class BaseSCGIServer(object): self.multithreaded = multithreaded self.multiprocess = multiprocess self._bindAddress = bindAddress + if allowedServers is NoDefault: + allowedServers = ['127.0.0.1'] self._allowedServers = allowedServers # Used to force single-threadedness. @@ -438,6 +444,9 @@ class BaseSCGIServer(object): """Fill-in/deduce missing values in environ.""" # Namely SCRIPT_NAME/PATH_INFO value = environ['SCRIPT_NAME'] + # Pull PATH_INFO from environ, if it exists. (cgi2scgi actually + # passes it in.) + value += environ.get('PATH_INFO', '') scriptName = self.scriptName if not value.startswith(scriptName): self.logger.warning('scriptName does not match request URI') |