def listen(self): self._acceptor = Acceptor(reactor=self._reactor, port=self._port, sinkFactory=lambda sok: HttpHandler( reactor=self._reactor, sok=sok, generatorFactory=self._generatorFactory, timeout=self._timeout, recvSize=self._recvSize, prio=self._prio, maxConnections=self._maxConnections, errorHandler=self._errorHandler, compressResponse=self._compressResponse), prio=self._prio, sok=self._sok, bindAddress=self._bindAddress)
def listen(self): # This should have been a SSLAcceptor ... if self._sok == None: def verify_cb(conn, cert, errnum, depth, ok): # This obviously has to be updated print 'Got certificate: %s' % cert.get_subject() return ok # Initialize context ctx = SSL.Context(SSL.SSLv23_METHOD) ctx.set_session_id('weightless:%s:%s' % (time(), randint(1024, 4096))) ctx.set_options(SSL.OP_NO_SSLv2) ctx.set_verify(SSL.VERIFY_PEER, verify_cb) # Demand a certificate ctx.use_privatekey_file(self._keyfile) ctx.use_certificate_file(self._certfile) # Set up server self._sok = SSL.Connection(ctx, socket()) self._sok.setsockopt(SOL_SOCKET, SO_REUSEADDR, 1) self._sok.setsockopt(SOL_SOCKET, SO_LINGER, pack('ii', 0, 0)) self._sok.bind( ('0.0.0.0' if self._bindAddress is None else self._bindAddress, self._port)) self._sok.listen(127) self._acceptor = Acceptor(reactor=self._reactor, port=self._port, sinkFactory=lambda sok: HttpsHandler( reactor=self._reactor, sok=sok, generatorFactory=self._generatorFactory, timeout=self._timeout, recvSize=self._recvSize, prio=self._prio, maxConnections=self._maxConnections, errorHandler=self._errorHandler, compressResponse=self._compressResponse), prio=self._prio, sok=self._sok, bindAddress=self._bindAddress)