| Index: third_party/tlslite/tlslite/integration/xmlrpcserver.py
|
| diff --git a/third_party/tlslite/tlslite/integration/xmlrpcserver.py b/third_party/tlslite/tlslite/integration/xmlrpcserver.py
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..c4f40cd94dcae8154367998382d7549348218f0e
|
| --- /dev/null
|
| +++ b/third_party/tlslite/tlslite/integration/xmlrpcserver.py
|
| @@ -0,0 +1,55 @@
|
| +# Authors:
|
| +# Kees Bos
|
| +# Martin von Loewis - python 3 port
|
| +#
|
| +# See the LICENSE file for legal information regarding use of this file.
|
| +
|
| +"""xmlrpcserver.py - simple XML RPC server supporting TLS"""
|
| +try:
|
| + from SimpleXMLRPCServer import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
|
| +except ImportError:
|
| + # Python 3
|
| + from xmlrpc.server import SimpleXMLRPCServer, SimpleXMLRPCRequestHandler
|
| +from .tlssocketservermixin import TLSSocketServerMixIn
|
| +
|
| +
|
| +class TLSXMLRPCRequestHandler(SimpleXMLRPCRequestHandler):
|
| + """XMLRPCRequestHandler using TLS"""
|
| +
|
| + # Redefine the setup method (see SocketServer.StreamRequestHandler)
|
| + def setup(self):
|
| + self.connection = self.request
|
| + if getattr(self, 'timeout', None) is not None:
|
| + # Python 2.7
|
| + self.connection.settimeout(self.timeout)
|
| + self.rfile = self.connection.makefile('rb', self.rbufsize)
|
| + self.wfile = self.connection.makefile('wb', self.wbufsize)
|
| +
|
| + def do_POST(self):
|
| + """Handles the HTTPS POST request."""
|
| + SimpleXMLRPCRequestHandler.do_POST(self)
|
| + try:
|
| + # shut down the connection
|
| + self.connection.shutdown()
|
| + except:
|
| + pass
|
| +
|
| +
|
| +class TLSXMLRPCServer(TLSSocketServerMixIn,
|
| + SimpleXMLRPCServer):
|
| + """Simple XML-RPC server using TLS"""
|
| +
|
| + def __init__(self, addr, *args, **kwargs):
|
| + if not args and not 'requestHandler' in kwargs:
|
| + kwargs['requestHandler'] = TLSXMLRPCRequestHandler
|
| + SimpleXMLRPCServer.__init__(self, addr, *args, **kwargs)
|
| +
|
| +
|
| +class MultiPathTLSXMLRPCServer(TLSXMLRPCServer):
|
| + """Multipath XML-RPC Server using TLS"""
|
| +
|
| + def __init__(self, addr, *args, **kwargs):
|
| + TLSXMLRPCServer.__init__(addr, *args, **kwargs)
|
| + self.dispatchers = {}
|
| + self.allow_none = allow_none
|
| + self.encoding = encoding
|
|
|