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)