File: //usr/lib64/python3.6/site-packages/M2Crypto/SSL/__pycache__/Connection.cpython-36.opt-1.pyc
3
���[0` � @ s� d dl mZ d dlZd dlZd dlmZmZmZmZm Z m
Z
mZ d dlm
Z
mZmZ d dlmZ d dlmZmZ d dlmZ e r�d dlmZmZmZmZmZmZmZmZ d d
gZej e!�Z"dd� Z#G d
d � d e$�Z%dS )� )�absolute_importN)�BIO�Err�X509�m2�py27plus�six�util)�Checker�Context�timeout)�SSLError)�Cipher�Cipher_Stack)�Session)�Any�AnyStr�Callable�Dict�List�Optional�Tuple�Union�
Connectionr c O s dS )N� � )�args�kwr r �"/usr/lib64/python3.6/Connection.py�_serverPostConnectionCheck s r c @ sh e Zd ZdZej� ZeZej Z
ejZej
Zdejfdd�Zdd� Zdd� Zd d
� Zdd� Zd
d� Zdd� Zd�dd�Zdd� Zdd� Zdd� Zdd� Zdd� Zdd� Zd d!� Zd"d#� Z d$d%� Z!d&d'� Z"d(d)� Z#d*d+� Z$d,d-� Z%d.d/� Z&d0d1� Z'd2d3� Z(d4d5� Z)d6d7� Z*d8d9� Z+d�d;d<�Z,d�d=d>�Z-d?d@� Z.e. Z/Z0dAdB� Z1d�dDdE�Z2d�dFdG�Z3e3Z4dHdI� Z5dJdK� Z6dLdM� Z7d�dNdO�Z8d�dPdQ�Z9dRdS� Z:dTdU� Z;dVdW� Z<dXdY� Z=dZd[� Z>d\d]� Z?d^d_� Z@d`da� ZAdbdc� ZBddde� ZCd�dfdg�ZDdhdi� ZEd�dldm�ZFdndo� ZGdpdq� ZHdrds� ZIdtdu� ZJdvdw� ZKdxdy� ZLdzd{� ZMeNd|d}� �ZOd~d� ZPd�d�� ZQd�d�� ZRd�d�� ZSd�d�� ZTd�d�� ZUd�d�� ZVdS )�r zAn SSL connection.Nc C s� || _ tj| j j �| _|dk r&|| _n$tj|tj�| _| jjtjtjd� | jj � | _
| jj� | _| jdkrrd| _tj
| _| j jdk r�| j| j j� d| _dS )zv
:param ctx: SSL.Context
:param sock: socket to be used
:param family: socket family
Nr g �?g �)�ctxr Zssl_new�ssl�socketZSOCK_STREAM�
setsockopt�
SOL_SOCKETZSO_REUSEADDR�filenoZ_filenoZ
gettimeout�_timeout�bio_noclose�ssl_close_flagZpost_connection_check�"set_post_connection_check_callback�host)�selfr �sockZfamilyr r r �__init__. s
zConnection.__init__c C sb t | dd �r| j| j� t | dd �r0| j| j� | j| jkrTt | dd �rT| j| j� | jj � d S )N�sslbio�sockbior! )
�getattr�m2_bio_freer. r/ r( �m2_bio_noclose�m2_ssl_freer! r"