Server IP : 15.235.198.142 / Your IP : 216.73.216.190 Web Server : Apache/2.4.58 (Ubuntu) System : Linux ballsack 6.8.0-45-generic #45-Ubuntu SMP PREEMPT_DYNAMIC Fri Aug 30 12:02:04 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 8.3.6 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : OFF Directory : /lib/python3/dist-packages/twisted/protocols/__pycache__/ |
Upload File : |
� Ϫ�f� � � � d Z ddlmZ ddlmZmZmZmZ ddlm Z m Z mZ ddlm Z mZmZmZmZ ddlmZ ddlmZ ddlmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z" dd l#m$Z$ dd l%m&Z& ddl'm(Z(m)Z) ddl*m+Z+ e e� G d � d� � Z,dd�Z- e e!ee"� G d� de(� � Z. e ee� G d� d� � Z/ G d� d� Z0dd�Z1 G d� de.� Z2 G d� de)� Z3y)a� Implementation of a TLS transport (L{ISSLTransport}) as an L{IProtocol<twisted.internet.interfaces.IProtocol>} layered on top of any L{ITransport<twisted.internet.interfaces.ITransport>} implementation, based on U{OpenSSL<http://www.openssl.org>}'s memory BIO features. L{TLSMemoryBIOFactory} is a L{WrappingFactory} which wraps protocols created by the factory it wraps with L{TLSMemoryBIOProtocol}. L{TLSMemoryBIOProtocol} intercedes between the underlying transport and the wrapped protocol to implement SSL and TLS. Typical usage of this module looks like this:: from twisted.protocols.tls import TLSMemoryBIOFactory from twisted.internet.protocol import ServerFactory from twisted.internet.ssl import PrivateCertificate from twisted.internet import reactor from someapplication import ApplicationProtocol serverFactory = ServerFactory() serverFactory.protocol = ApplicationProtocol certificate = PrivateCertificate.loadPEM(certPEMData) contextFactory = certificate.options() tlsFactory = TLSMemoryBIOFactory(contextFactory, False, serverFactory) reactor.listenTCP(12345, tlsFactory) reactor.run() This API offers somewhat more flexibility than L{twisted.internet.interfaces.IReactorSSL}; for example, a L{TLSMemoryBIOProtocol} instance can use another instance of L{TLSMemoryBIOProtocol} as its transport, yielding TLS over TLS - useful to implement onion routing. It can also be used to run TLS over unusual transports, such as UNIX sockets and stdio. � )�annotations)�Callable�Iterable�Optional�cast)�directlyProvides�implementer� providedBy)� Connection�Error�SysCallError� WantReadError�ZeroReturnError)�_PullToPush)�_setAcceptableProtocols)�IDelayedCall�IHandshakeListener�ILoggingContext�INegotiated�IOpenSSLClientConnectionCreator�IOpenSSLServerConnectionCreator� IProtocol�IProtocolNegotiationFactory� IPushProducer�IReactorTime� ISystemHandle� ITransport)�CONNECTION_LOST)�Protocol)�ProtocolWrapper�WrappingFactory)�Failurec �, � e Zd ZdZdZd� Zd� Zd� Zd� Zy)�_ProducerMembranea Stand-in for producer registered with a L{TLSMemoryBIOProtocol} transport. Ensures that producer pause/resume events from the undelying transport are coordinated with pause/resume events from the TLS layer. @ivar _producer: The application-layer producer. Fc � � || _ y �N)� _producer)�self�producers �7/usr/lib/python3/dist-packages/twisted/protocols/tls.py�__init__z_ProducerMembrane.__init__R s � �!��� c �` � | j ryd| _ | j j � y)zP C{pauseProducing} the underlying producer, if it's not paused. NT)�_producerPausedr'