Format: application/x-python-code
1 o
2
3 7'h6 �
4 @ s d dl mZ d dlZd dlZd dlZddlmZ ddlmZm Z ddl
5 mZmZ ddl
6 mZmZmZmZmZmZ ddlmZ dd lmZ dd
7 lmZ ddlmZ dd
8 lmZ ddlmZ e� d�Z!ddddd�Z"dddddddddd� Z#dd�d0d*d+�Z$G d,d-� d-e�Z%G d.d/� d/e�Z&dS )1� )�annotationsN� )�AutoBackend)�AsyncNetworkBackend�AsyncNetworkStream)�ConnectionNotAvailable�
9 ProxyError)�URL�Origin�Request�Response�
10 enforce_bytes�enforce_url)�default_ssl_context)� AsyncLock)�Trace� )�AsyncConnectionPool)�AsyncHTTP11Connection)�AsyncConnectionInterfacezhttpcore.sockszNO AUTHENTICATION REQUIREDZGSSAPIzUSERNAME/PASSWORDzNO ACCEPTABLE METHODS)� � � � �Z SucceededzGeneral SOCKS server failurez!Connection not allowed by rulesetzNetwork unreachablezHost unreachablezConnection refusedzTTL expiredzCommand not supportedzAddress type not supported) r r r � � � � � � )�auth�streamr �host�bytes�port�intr �tuple[bytes, bytes] | None�return�Nonec � s� �t j�� }|d u rt jjjnt jjj}|�t j�|g�� |�� }| � |�I d H | j
11 dd�I d H }|�|�}t|t jj
12 �sAJ �|j|kr^t�|d�} t�|jd�}
13 td| � d|
14 � d���|jt jjjkr�|d uslJ �|\}}|�t j�||�� |�� }| � |�I d H | j
15 dd�I d H }|�|�}t|t jj�s�J �|js�td��|�t jj�t jjj||f�� |�� }| � |�I d H | j
16 dd�I d H }|�|�}t|t jj�s�J �|jt jjjkr�t�|jd�}
17 td |
18 � d���d S )
19 Ni )Z max_bytes�UNKNOWNz
20 Requested z from proxy server, but got �.zInvalid username/passwordZUNKOWNz Proxy Server could not connect: )�socksioZsocks5ZSOCKS5ConnectionZSOCKS5AuthMethodZNO_AUTH_REQUIREDZUSERNAME_PASSWORD�sendZSOCKS5AuthMethodsRequestZdata_to_send�write�readZreceive_data�
21 isinstanceZSOCKS5AuthReply�method�AUTH_METHODS�getr ZSOCKS5UsernamePasswordRequestZSOCKS5UsernamePasswordReply�successZSOCKS5CommandRequest�from_addressZ
22 SOCKS5CommandZCONNECTZSOCKS5Reply�
23 reply_codeZSOCKS5ReplyCodeZ SUCCEEDED�REPLY_CODES)r! r"