summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Saddi <allan@saddi.com>2006-08-28 16:45:05 +0000
committerAllan Saddi <allan@saddi.com>2006-08-28 16:45:05 +0000
commita172719f946a2e2680a34aca68b3cbfd8c2fcafd (patch)
tree8b4ec220ca4f19bb01ebfb9e89fdfe1821a5aad3
parente9e308f9faf12131724ff99016ba03a4356d0eff (diff)
downloadflup-a172719f946a2e2680a34aca68b3cbfd8c2fcafd.tar.gz
Add support for FastCGI roles other than FCGI_RESPONDER.
-rw-r--r--ChangeLog5
-rw-r--r--flup/server/fcgi.py7
-rw-r--r--flup/server/fcgi_base.py5
3 files changed, 12 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 9385114..3cd8d84 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2006-08-28 Allan Saddi <asaddi@sahara.flup.org>
+
+ * Add support for FastCGI roles other than FCGI_RESPONDER.
+ Patch provided by Seairth Jacobs.
+
2006-08-02 Allan Saddi <asaddi@kalahari.flup.org>
* Add cookieExpiration keyword to SessionService /
diff --git a/flup/server/fcgi.py b/flup/server/fcgi.py
index 1b23ddc..9d23051 100644
--- a/flup/server/fcgi.py
+++ b/flup/server/fcgi.py
@@ -51,7 +51,7 @@ __version__ = '$Revision$'
import os
-from fcgi_base import BaseFCGIServer
+from fcgi_base import BaseFCGIServer, FCGI_RESPONDER
from threadedserver import ThreadedServer
__all__ = ['WSGIServer']
@@ -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, **kw):
+ debug=True, roles=(FCGI_RESPONDER,), **kw):
"""
environ, if present, must be a dictionary-like object. Its
contents will be copied into application's environ. Useful
@@ -86,7 +86,8 @@ class WSGIServer(BaseFCGIServer, ThreadedServer):
bindAddress=bindAddress,
umask=umask,
multiplexed=multiplexed,
- debug=debug)
+ debug=debug,
+ roles=roles)
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 56fac6b..3109429 100644
--- a/flup/server/fcgi_base.py
+++ b/flup/server/fcgi_base.py
@@ -898,7 +898,7 @@ class BaseFCGIServer(object):
def __init__(self, application, environ=None,
multithreaded=True, multiprocess=False,
bindAddress=None, umask=None, multiplexed=False,
- debug=True):
+ debug=True, roles=(FCGI_RESPONDER,)):
"""
bindAddress, if present, must either be a string or a 2-tuple. If
present, run() will open its own listening socket. You would use
@@ -929,6 +929,7 @@ class BaseFCGIServer(object):
self.multithreaded = multithreaded
self.multiprocess = multiprocess
self.debug = debug
+ self.roles = roles
self._bindAddress = bindAddress
self._umask = umask
@@ -1022,7 +1023,7 @@ class BaseFCGIServer(object):
def handler(self, req):
"""Special handler for WSGI."""
- if req.role != FCGI_RESPONDER:
+ if req.role not in self.roles:
return FCGI_UNKNOWN_ROLE, 0
# Mostly taken from example CGI gateway.