[Python-checkins] r54262 - in python/trunk: Doc/lib/libdocxmlrpc.tex Doc/lib/libsimplexmlrpc.tex Lib/DocXMLRPCServer.py Lib/SimpleXMLRPCServer.py Lib/SocketServer.py Misc/NEWS
collin.winter
python-checkins at python.org
Sat Mar 10 15:41:51 CET 2007
Author: collin.winter
Date: Sat Mar 10 15:41:48 2007
New Revision: 54262
Modified:
python/trunk/Doc/lib/libdocxmlrpc.tex
python/trunk/Doc/lib/libsimplexmlrpc.tex
python/trunk/Lib/DocXMLRPCServer.py
python/trunk/Lib/SimpleXMLRPCServer.py
python/trunk/Lib/SocketServer.py
python/trunk/Misc/NEWS
Log:
Patch #1599845: Add an option to disable the implicit calls to server_bind() and server_activate() in the constructors for TCPServer, SimpleXMLRPCServer and DocXMLRPCServer.
Modified: python/trunk/Doc/lib/libdocxmlrpc.tex
==============================================================================
--- python/trunk/Doc/lib/libdocxmlrpc.tex (original)
+++ python/trunk/Doc/lib/libdocxmlrpc.tex Sat Mar 10 15:41:48 2007
@@ -14,8 +14,12 @@
\class{DocXMLRPCServer}, or embedded in a CGI environment, using
\class{DocCGIXMLRPCRequestHandler}.
-\begin{classdesc}{DocXMLRPCServer}{addr\optional{,
- requestHandler\optional{, logRequests}}}
+\begin{classdesc}{DocXMLRPCServer}{addr\optional{,
+ requestHandler\optional{,
+ logRequests\optional{,
+ allow_none\optional{,
+ encoding\optional{,
+ bind_and_activate}}}}}}
Create a new server instance. All parameters have the same meaning as
for \class{SimpleXMLRPCServer.SimpleXMLRPCServer};
Modified: python/trunk/Doc/lib/libsimplexmlrpc.tex
==============================================================================
--- python/trunk/Doc/lib/libsimplexmlrpc.tex (original)
+++ python/trunk/Doc/lib/libsimplexmlrpc.tex Sat Mar 10 15:41:48 2007
@@ -15,7 +15,9 @@
\begin{classdesc}{SimpleXMLRPCServer}{addr\optional{,
requestHandler\optional{,
- logRequests\optional{, allow_none\optional{, encoding}}}}}
+ logRequests\optional{,
+ allow_none\optional{,
+ encoding}}}}}
Create a new server instance. This class
provides methods for registration of functions that can be called by
@@ -28,8 +30,13 @@
setting this parameter to false will turn off logging.
The \var{allow_none} and \var{encoding} parameters are passed on to
\module{xmlrpclib} and control the XML-RPC responses that will be returned
- from the server.
+ from the server. The \var{bind_and_activate} parameter controls whether
+ \method{server_bind()} and \method{server_activate()} are called immediately
+ by the constructor; it defaults to true. Setting it to false allows code to
+ manipulate the \var{allow_reuse_address} class variable before the address
+ is bound.
\versionchanged[The \var{allow_none} and \var{encoding} parameters were added]{2.5}
+ \versionchanged[The \var{bind_and_activate} parameter was added]{2.6}
\end{classdesc}
\begin{classdesc}{CGIXMLRPCRequestHandler}{\optional{allow_none\optional{, encoding}}}
Modified: python/trunk/Lib/DocXMLRPCServer.py
==============================================================================
--- python/trunk/Lib/DocXMLRPCServer.py (original)
+++ python/trunk/Lib/DocXMLRPCServer.py Sat Mar 10 15:41:48 2007
@@ -252,8 +252,10 @@
"""
def __init__(self, addr, requestHandler=DocXMLRPCRequestHandler,
- logRequests=1):
- SimpleXMLRPCServer.__init__(self, addr, requestHandler, logRequests)
+ logRequests=1, allow_none=False, encoding=None,
+ bind_and_activate=True):
+ SimpleXMLRPCServer.__init__(self, addr, requestHandler, logRequests,
+ allow_none, encoding, bind_and_activate)
XMLRPCDocGenerator.__init__(self)
class DocCGIXMLRPCRequestHandler( CGIXMLRPCRequestHandler,
Modified: python/trunk/Lib/SimpleXMLRPCServer.py
==============================================================================
--- python/trunk/Lib/SimpleXMLRPCServer.py (original)
+++ python/trunk/Lib/SimpleXMLRPCServer.py Sat Mar 10 15:41:48 2007
@@ -518,11 +518,11 @@
allow_reuse_address = True
def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler,
- logRequests=True, allow_none=False, encoding=None):
+ logRequests=True, allow_none=False, encoding=None, bind_and_activate=True):
self.logRequests = logRequests
SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding)
- SocketServer.TCPServer.__init__(self, addr, requestHandler)
+ SocketServer.TCPServer.__init__(self, addr, requestHandler, bind_and_activate)
# [Bug #1222790] If possible, set close-on-exec flag; if a
# method spawns a subprocess, the subprocess shouldn't have
Modified: python/trunk/Lib/SocketServer.py
==============================================================================
--- python/trunk/Lib/SocketServer.py (original)
+++ python/trunk/Lib/SocketServer.py Sat Mar 10 15:41:48 2007
@@ -279,7 +279,7 @@
Methods for the caller:
- - __init__(server_address, RequestHandlerClass)
+ - __init__(server_address, RequestHandlerClass, bind_and_activate=True)
- serve_forever()
- handle_request() # if you don't use serve_forever()
- fileno() -> int # for select()
@@ -322,13 +322,14 @@
allow_reuse_address = False
- def __init__(self, server_address, RequestHandlerClass):
+ def __init__(self, server_address, RequestHandlerClass, bind_and_activate=True):
"""Constructor. May be extended, do not override."""
BaseServer.__init__(self, server_address, RequestHandlerClass)
self.socket = socket.socket(self.address_family,
self.socket_type)
- self.server_bind()
- self.server_activate()
+ if bind_and_activate:
+ self.server_bind()
+ self.server_activate()
def server_bind(self):
"""Called by constructor to bind the socket.
Modified: python/trunk/Misc/NEWS
==============================================================================
--- python/trunk/Misc/NEWS (original)
+++ python/trunk/Misc/NEWS Sat Mar 10 15:41:48 2007
@@ -156,6 +156,10 @@
Library
-------
+- Patch #1599845: Add an option to disable the implicit calls to server_bind()
+ and server_activate() in the constructors for TCPServer, SimpleXMLRPCServer
+ and DocXMLRPCServer.
+
- Bug #1531963: Make SocketServer.TCPServer's server_address always
be equal to calling getsockname() on the server's socket. Fixed by
patch #1545011.
More information about the Python-checkins
mailing list