示例#1
0
    def setUp(self):
        """Prepares to run the tests.

        The preparation consist on creating temporary files containing
        the keys and certificates and starting a thread that runs a
        simple SSL server.
        """

        # Save the key to a file:
        with tempfile.NamedTemporaryFile(delete=False) as tmp:
            tmp.write(KEY)
            self.keyfile = tmp.name

        # Save the certificate to a file:
        with tempfile.NamedTemporaryFile(delete=False) as tmp:
            tmp.write(CERTIFICATE)
            self.certfile = tmp.name

        # Create the server socket:
        self.server = socket.socket()
        self.server = SSLServerSocket(
            raw=self.server,
            keyfile=self.keyfile,
            certfile=self.certfile,
            ca_certs=self.certfile)
        self.address = self.tryBind(ADDRESS)
        self.server.listen(5)

        # Start the server thread:
        self.thread = SSLServerThread(self.server)
        self.thread.start()
示例#2
0
 def __init__(self):
     self.server = SimpleXMLRPCServer.SimpleXMLRPCServer((HOST, 0),
                                                         logRequests=False)
     self.server.socket = SSLServerSocket(raw=self.server.socket,
                                          keyfile=KEY_FILE,
                                          certfile=CRT_FILE,
                                          ca_certs=CRT_FILE)
     _, self.port = self.server.socket.getsockname()
     self.server.register_instance(MathService())
示例#3
0
    def _create_socket(self, host, port):
        addr = socket.getaddrinfo(host, port, socket.AF_INET,
                                  socket.SOCK_STREAM)
        if not addr:
            raise Exception("Could not translate address '%s:%s'"
                            % (self._host, str(self._port)))
        server_socket = socket.socket(addr[0][0], addr[0][1], addr[0][2])
        utils.closeOnExec(server_socket.fileno())
        server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
        server_socket.bind(addr[0][4])
        server_socket.listen(5)

        if self._sslctx:
            server_socket = SSLServerSocket(raw=server_socket,
                                            certfile=self._sslctx.cert_file,
                                            keyfile=self._sslctx.key_file,
                                            ca_certs=self._sslctx.ca_cert)

        server_socket.setblocking(0)
        return server_socket