[Wikirover-commits] CVS: wikiserver filteraccess.py,1.6,1.7
Brought to you by:
medericboquien,
ryo_saeba
From: Luc V. O. <lo...@us...> - 2004-10-30 16:10:07
|
Update of /cvsroot/wikirover/wikiserver In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1770 Modified Files: filteraccess.py Log Message: use a forking server Index: filteraccess.py =================================================================== RCS file: /cvsroot/wikirover/wikiserver/filteraccess.py,v retrieving revision 1.6 retrieving revision 1.7 diff -u -p -d -r1.6 -r1.7 --- filteraccess.py 24 Oct 2004 22:37:34 -0000 1.6 +++ filteraccess.py 30 Oct 2004 16:09:54 -0000 1.7 @@ -97,7 +97,20 @@ class AccessManagerSingleton: getInstance = staticmethod(getInstance) import BaseHTTPServer -class FilterAccessHTTPServer(BaseHTTPServer.HTTPServer): +import SocketServer +import socket +class ForkingHTTPServer(SocketServer.ForkingTCPServer): + + allow_reuse_address = 1 # Seems to make sense in testing environment + + def server_bind(self): + """Override server_bind to store the server name.""" + SocketServer.ForkingTCPServer.server_bind(self) + host, port = self.socket.getsockname()[:2] + self.server_name = socket.getfqdn(host) + self.server_port = port + +class FilterAccessHTTPServer(ForkingHTTPServer): """ Like BaseHTTPServer.HTTPServer but override the verify_request method from SocketServer.TCPServer, then verify if the client @@ -105,7 +118,7 @@ class FilterAccessHTTPServer(BaseHTTPSer """ def __init__(self, *args, **kwargs): - BaseHTTPServer.HTTPServer.__init__(self, *args, **kwargs) + ForkingHTTPServer.__init__(self, *args, **kwargs) self.acl = AccessManagerSingleton.getInstance() def verify_request(self, request, client_address): |