�
!A?h�{ � �P � d dl Z d dlZd dlZ d dlZn
# e$ r dZY nw xY wddlmZ ddlmZ ddlmZ ddlm Z ddl
mZ e�ej ej
fZ G d� d ej � � Z G d
� dej � � Zd� Zd
� Z G d� de j e j � � Z G d� dej � � ZdS )� N� )� constants)�
exceptions)� protocols)�
transports)�loggerc �" � e Zd ZdZdZdZdZdZdS )�SSLProtocolState� UNWRAPPED�DO_HANDSHAKE�WRAPPED�FLUSHING�SHUTDOWNN)�__name__�
__module__�__qualname__r r r
r r � � �=/opt/alt/python-internal/lib64/python3.11/asyncio/sslproto.pyr
r
s' � � � � � ��I�!�L��G��H��H�H�Hr r
c � � e Zd ZdZdZdZdZdS )�AppProtocolState�
STATE_INIT�STATE_CON_MADE� STATE_EOF�STATE_CON_LOSTN)r r r r r r r r r r r r s$ � � � � � � �J�%�N��I�%�N�N�Nr r c �` � | rt d� � �t j � � }|sd|_ |S )Nz(Server side SSL needs a valid SSLContextF)�
ValueError�ssl�create_default_context�check_hostname)�server_side�server_hostname�
sslcontexts r �_create_transport_contextr$ / s@ � �� E��C�D�D�D� �+�-�-�J�� *�$)�
�!��r c � � | �|�|dz }n
|}d|z }n| }|�|dz }n|}||cxk rdk sn t d|�d|�d�� � �||fS )Ni � r zhigh (z) must be >= low (z) must be >= 0)r )�high�low�kb�hi�los r �add_flowcontrol_defaultsr, = s� � ��|��;��d��B�B��B��R��B�B�
��
�{�
�1�W���
��
��=�=�=�=�q�=�=�=�=��j��"�"�b�b�b�"� #� #� #� �r�6�Mr c �� � e Zd ZdZej j Zd� Zdd�Z d� Z
d� Zd� Zd� Z
efd �Zd
� Zd� Zd� Zdd
�Zd� Zd� Zdd�Zd� Zd� Zed� � � Zd� Zd� Zd� Zd� Zd� Zd� Z d� Z!dS )�_SSLProtocolTransportTc �0 � || _ || _ d| _ d S �NF)�_loop�
_ssl_protocol�_closed)�self�loop�ssl_protocols r �__init__z_SSLProtocolTransport.__init__X s � ���
�)�������r Nc �: � | j � ||� � S �N)r2 �_get_extra_info�r4 �name�defaults r �get_extra_infoz$_SSLProtocolTransport.get_extra_info] s � �1��!�1�1�$��@�@�@r c �: � | j � |� � d S r9 )r2 �_set_app_protocol)r4 �protocols r �set_protocolz"_SSLProtocolTransport.set_protocola s � ���,�,�X�6�6�6�6�6r c � � | j j S r9 )r2 �
_app_protocol�r4 s r �get_protocolz"_SSLProtocolTransport.get_protocold s � ��!�/�/r c � � | j S r9 )r3 rE s r �
is_closingz _SSLProtocolTransport.is_closingg s
� ��|�r c �h � | j s"d| _ | j � � � d S d | _ d S �NT)r3 r2 �_start_shutdownrE s r �closez_SSLProtocolTransport.closej sC � � � �|� &��D�L���.�.�0�0�0�0�0�!%�D���r c �\ � | j s$d| _ |� dt � � d S d S )NTz9unclosed transport