diff options
author | Florent Xicluna <florent.xicluna@gmail.com> | 2011-12-09 21:35:06 (GMT) |
---|---|---|
committer | Florent Xicluna <florent.xicluna@gmail.com> | 2011-12-09 21:35:06 (GMT) |
commit | 1b7458b2a1beb86526ab067059ac18a2a0b53cb2 (patch) | |
tree | 2fa7c90b22845df99c30d66fb1bcb3871f81f036 /Lib/xmlrpc | |
parent | e3b47152a481313081621b46381384d18d0419e8 (diff) | |
download | cpython-1b7458b2a1beb86526ab067059ac18a2a0b53cb2.zip cpython-1b7458b2a1beb86526ab067059ac18a2a0b53cb2.tar.gz cpython-1b7458b2a1beb86526ab067059ac18a2a0b53cb2.tar.bz2 |
Closes #2979: add parameter 'use_builtin_types' to the SimpleXMLRPCServer.
Diffstat (limited to 'Lib/xmlrpc')
-rw-r--r-- | Lib/xmlrpc/server.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/Lib/xmlrpc/server.py b/Lib/xmlrpc/server.py index 4fc8a15..bf22aa9 100644 --- a/Lib/xmlrpc/server.py +++ b/Lib/xmlrpc/server.py @@ -160,11 +160,13 @@ class SimpleXMLRPCDispatcher: can be instanced when used by the MultiPathXMLRPCServer """ - def __init__(self, allow_none=False, encoding=None): + def __init__(self, allow_none=False, encoding=None, + use_builtin_types=False): self.funcs = {} self.instance = None self.allow_none = allow_none self.encoding = encoding or 'utf-8' + self.use_builtin_types = use_builtin_types def register_instance(self, instance, allow_dotted_names=False): """Registers an instance to respond to XML-RPC requests. @@ -245,7 +247,7 @@ class SimpleXMLRPCDispatcher: """ try: - params, method = loads(data) + params, method = loads(data, use_builtin_types=self.use_builtin_types) # generate response if dispatch_method is not None: @@ -572,10 +574,11 @@ class SimpleXMLRPCServer(socketserver.TCPServer, _send_traceback_header = False def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, - logRequests=True, allow_none=False, encoding=None, bind_and_activate=True): + logRequests=True, allow_none=False, encoding=None, + bind_and_activate=True, use_builtin_types=False): self.logRequests = logRequests - SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding) + SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding, use_builtin_types) socketserver.TCPServer.__init__(self, addr, requestHandler, bind_and_activate) # [Bug #1222790] If possible, set close-on-exec flag; if a @@ -595,10 +598,11 @@ class MultiPathXMLRPCServer(SimpleXMLRPCServer): Make sure that the requestHandler accepts the paths in question. """ def __init__(self, addr, requestHandler=SimpleXMLRPCRequestHandler, - logRequests=True, allow_none=False, encoding=None, bind_and_activate=True): + logRequests=True, allow_none=False, encoding=None, + bind_and_activate=True, use_builtin_types=False): SimpleXMLRPCServer.__init__(self, addr, requestHandler, logRequests, allow_none, - encoding, bind_and_activate) + encoding, bind_and_activate, use_builtin_types) self.dispatchers = {} self.allow_none = allow_none self.encoding = encoding or 'utf-8' @@ -628,8 +632,8 @@ class MultiPathXMLRPCServer(SimpleXMLRPCServer): class CGIXMLRPCRequestHandler(SimpleXMLRPCDispatcher): """Simple handler for XML-RPC data passed through CGI.""" - def __init__(self, allow_none=False, encoding=None): - SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding) + def __init__(self, allow_none=False, encoding=None, use_builtin_types=False): + SimpleXMLRPCDispatcher.__init__(self, allow_none, encoding, use_builtin_types) def handle_xmlrpc(self, request_text): """Handle a single XML-RPC request""" @@ -924,9 +928,10 @@ class DocXMLRPCServer( SimpleXMLRPCServer, def __init__(self, addr, requestHandler=DocXMLRPCRequestHandler, logRequests=True, allow_none=False, encoding=None, - bind_and_activate=True): + bind_and_activate=True, use_builtin_types=False): SimpleXMLRPCServer.__init__(self, addr, requestHandler, logRequests, - allow_none, encoding, bind_and_activate) + allow_none, encoding, bind_and_activate, + use_builtin_types) XMLRPCDocGenerator.__init__(self) class DocCGIXMLRPCRequestHandler( CGIXMLRPCRequestHandler, |