diff options
author | Allan Saddi <allan@saddi.com> | 2009-02-02 23:55:25 -0800 |
---|---|---|
committer | Allan Saddi <allan@saddi.com> | 2009-02-02 23:55:25 -0800 |
commit | ddc2a9ec8ad1e21be96caf9f84676371d404c224 (patch) | |
tree | a43bc9cc0c14d80fdf795329e2af4fc833266e31 /flup | |
parent | 517cbc0c9858b07c86f3585f454842562cee188e (diff) | |
download | flup-ddc2a9ec8ad1e21be96caf9f84676371d404c224.tar.gz |
Add forceCGI keyword argument to FastCGI servers to
programmatically force CGI behavior.
Diffstat (limited to 'flup')
-rw-r--r-- | flup/server/fcgi.py | 5 | ||||
-rw-r--r-- | flup/server/fcgi_base.py | 6 | ||||
-rw-r--r-- | flup/server/fcgi_fork.py | 8 | ||||
-rw-r--r-- | flup/server/fcgi_single.py | 5 |
4 files changed, 15 insertions, 9 deletions
diff --git a/flup/server/fcgi.py b/flup/server/fcgi.py index d41b88f..ff03754 100644 --- a/flup/server/fcgi.py +++ b/flup/server/fcgi.py @@ -64,7 +64,7 @@ class WSGIServer(BaseFCGIServer, ThreadedServer): def __init__(self, application, environ=None, multithreaded=True, multiprocess=False, bindAddress=None, umask=None, multiplexed=False, - debug=True, roles=(FCGI_RESPONDER,), **kw): + debug=True, roles=(FCGI_RESPONDER,), forceCGI=False, **kw): """ environ, if present, must be a dictionary-like object. Its contents will be copied into application's environ. Useful @@ -87,7 +87,8 @@ class WSGIServer(BaseFCGIServer, ThreadedServer): umask=umask, multiplexed=multiplexed, debug=debug, - roles=roles) + roles=roles, + forceCGI=forceCGI) for key in ('jobClass', 'jobArgs'): if kw.has_key(key): del kw[key] diff --git a/flup/server/fcgi_base.py b/flup/server/fcgi_base.py index 3c059f5..31e0ac6 100644 --- a/flup/server/fcgi_base.py +++ b/flup/server/fcgi_base.py @@ -902,7 +902,8 @@ class BaseFCGIServer(object): def __init__(self, application, environ=None, multithreaded=True, multiprocess=False, bindAddress=None, umask=None, multiplexed=False, - debug=True, roles=(FCGI_RESPONDER,)): + debug=True, roles=(FCGI_RESPONDER,), + forceCGI=False): """ bindAddress, if present, must either be a string or a 2-tuple. If present, run() will open its own listening socket. You would use @@ -934,6 +935,7 @@ class BaseFCGIServer(object): self.multiprocess = multiprocess self.debug = debug self.roles = roles + self.forceCGI = forceCGI self._bindAddress = bindAddress self._umask = umask @@ -989,7 +991,7 @@ class BaseFCGIServer(object): # if you want to run your app as a simple CGI. (You can do # this with Apache's mod_env [not loaded by default in OS X # client, ha ha] and the SetEnv directive.) - if not isFCGI or \ + if not isFCGI or self.forceCGI or \ os.environ.get('FCGI_FORCE_CGI', 'N').upper().startswith('Y'): req = self.cgirequest_class(self) req.run() diff --git a/flup/server/fcgi_fork.py b/flup/server/fcgi_fork.py index 53035a1..740e26b 100644 --- a/flup/server/fcgi_fork.py +++ b/flup/server/fcgi_fork.py @@ -51,7 +51,7 @@ __version__ = '$Revision$' import os -from flup.server.fcgi_base import BaseFCGIServer, \ +from flup.server.fcgi_base import BaseFCGIServer, FCGI_RESPONDER, \ FCGI_MAX_CONNS, FCGI_MAX_REQS, FCGI_MPXS_CONNS from flup.server.preforkserver import PreforkServer @@ -64,7 +64,7 @@ class WSGIServer(BaseFCGIServer, PreforkServer): """ def __init__(self, application, environ=None, bindAddress=None, umask=None, multiplexed=False, - debug=True, **kw): + debug=True, roles=(FCGI_RESPONDER,), forceCGI=False, **kw): """ environ, if present, must be a dictionary-like object. Its contents will be copied into application's environ. Useful @@ -86,7 +86,9 @@ class WSGIServer(BaseFCGIServer, PreforkServer): bindAddress=bindAddress, umask=umask, multiplexed=multiplexed, - debug=debug) + debug=debug, + roles=roles, + forceCGI=forceCGI) for key in ('multithreaded', 'multiprocess', 'jobClass', 'jobArgs'): if kw.has_key(key): del kw[key] diff --git a/flup/server/fcgi_single.py b/flup/server/fcgi_single.py index 5c9367a..c2e63ff 100644 --- a/flup/server/fcgi_single.py +++ b/flup/server/fcgi_single.py @@ -64,7 +64,7 @@ class WSGIServer(BaseFCGIServer, SingleServer): """ def __init__(self, application, environ=None, bindAddress=None, umask=None, multiplexed=False, - debug=True, roles=(FCGI_RESPONDER,), **kw): + debug=True, roles=(FCGI_RESPONDER,), forceCGI=False, **kw): """ environ, if present, must be a dictionary-like object. Its contents will be copied into application's environ. Useful @@ -87,7 +87,8 @@ class WSGIServer(BaseFCGIServer, SingleServer): umask=umask, multiplexed=multiplexed, debug=debug, - roles=roles) + roles=roles, + forceCGI=forceCGI) for key in ('jobClass', 'jobArgs'): if kw.has_key(key): del kw[key] |