File: //usr/lib/python3/dist-packages/twisted/internet/iocpreactor/__pycache__/tcp.cpython-310.pyc
o
�b�M � @ s� d Z ddlZddlZddlZddlmZ ddlmZmZ ddl m
Z
mZmZm
Z
mZ ddlmZmZ ddlmZmZ ddlmZmZmZmZmZ dd lmZ dd
lmZ ddl m!Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z( ddl)m*Z*m+Z+m,Z, zdd
l-m.Z/ W n e0y� dZ1Y nw e/Z1eej2eej3iZ4eee
j5e
j6�G dd� dej7e(e#��Z8e1dur�ee8e
j9� G dd� de$e%e8�Z:G dd� de8�Z;G dd� de"�Z!ee
j<�G dd� de(e��Z=dS )z
TCP support for IOCP reactor
� N)�Optional)�classImplements�implementer)�address�defer�error�
interfaces�main)� _LogOwner�
isIPv6Address)�abstract�iocpsupport)�ERROR_CONNECTION_REFUSED�ERROR_IO_PENDING�ERROR_NETWORK_UNREACHABLE�SO_UPDATE_ACCEPT_CONTEXT�SO_UPDATE_CONNECT_CONTEXT)�IReadWriteHandle)�Protocol)� Connector�_AbortingMixin�_BaseBaseClient�_BaseTCPClient�_getsockname�_resolveIPv6�
_SocketCloser)�failure�log�reflect)�startTLSc @ s� e Zd ZdZdZd/dd�Zdd� Zdd � Zd
d� Zdd
� Z dd� Z
dd� Zdd� Zdd� Z
dd� Zdd� Zdd� Zdd� ZedurFd0dd �Zd!d"� Zd#d$� Zd/d%d&�Zd'd(� Zd)d*� Zd+d,� Zd-d.� ZdS )1�
Connectionz�
@ivar TLS: C{False} to indicate the connection is in normal TCP mode,
C{True} to indicate that TLS has been started and that operations must
be routed through the L{TLSMemoryBIOProtocol} instance.
FNc C s&