No subject


Mon Oct 15 08:52:25 EDT 2012


always returns False.

-----

I need to call

self._tlsConnection.set_shutdown(SENT_SHUTDOWN | RECEIVED_SHUTDOWN)

before calling

shutdownSuccess = self._tlsConnection.shutdown()

and then  self._tlsConnection.shutdown() returns True, otherwise it
returns False.

    def loseConnection(self):
        """
        Send a TLS close alert and close the underlying connection.
        """
        if self.disconnecting:
            return
        self.disconnecting = True
        if not self._writeBlockedOnRead and self._producer is None:
            from OpenSSL.SSL import RECEIVED_SHUTDOWN
            self._tlsConnection.set_shutdown(RECEIVED_SHUTDOWN)
            self._shutdownTLS()

    def _shutdownTLS(self):
        """
        Initiate, or reply to, the shutdown handshake of the TLS layer.
        """
        self._flushSendBIO()
        shutdownSuccess = self._tlsConnection.shutdown()
        self._flushSendBIO()
        if shutdownSuccess:
            # Both sides have shutdown, so we can start closing lower-level
            # transport. This will also happen if we haven't started
            # negotiation at all yet, in which case shutdown succeeds
            # immediately.
            self.transport.loseConnection()


----


How should the connection be handled when
self._tlsConnection.shutdown() returns False?



More information about the Twisted-Python mailing list