Sindbad~EG File Manager
�
'Μg�� � �& � d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlZ d dlZd dlm
Z
mZ d dlm
Z
d dlmZ d dlmZ d dlmZ d dlmZ d dlmZ d d lmZmZ e
j. d
�� e
j0 ZdZd
dz ZdZdZdZd� Z G d� dej@ � Z! G d� dej@ � Z" G d� dejF ejH � Z%e��ejL jO ejL jQ e)� dd� Z*ejL jO ejL jQ e)� dd� Z+ G d� dejF � Z, G d� de,e!� Z- G d� d e,e"� Z. G d!� d"e%� Z/ G d#� d$e
� Z0 eejb d%� G d&� d'e
� � Z2 eed(� G d)� d*e0� � Z3 eed(� G d+� d,e
� � Z4 G d-� d.e
� Z5 G d/� d0e
� Z6d1� Z7e8d2k( r ejr � yy# e $ r dZY ���w xY w)3� N)�TestCase�
skipUnless)�support)�threading_helper)�
socket_helper)�warnings_helper)�asynchat)�asyncore)�HOST�HOSTv6T)�module�utf-8u abcde¹²³¤¦
i� u foo
bar
non-ascii char ®
u> type=cdir;perm=el;unique==keVO1+ZF4; test
type=pdir;perm=e;unique==keVO1+d?3; ..
type=OS.unix=slink:/foobar;perm=;unique==keVO1+4G4; foobar
type=OS.unix=chr-13/29;perm=;unique==keVO1+5G4; device
type=OS.unix=blk-11/108;perm=;unique==keVO1+6G4; block
type=file;perm=awr;unique==keVO1+8G4; writable
type=dir;perm=cpmel;unique==keVO1+7G4; promiscuous
type=dir;perm=;unique==keVO1+1t2; no-exec
type=file;perm=r;unique==keVO1+EG4; two words
type=file;perm=r;unique==keVO1+IH4; leading space
type=file;perm=r;unique==keVO1+1G4; file1
type=dir;perm=cpmel;unique==keVO1+7G4; incoming
type=file;perm=r;unique==keVO1+1G4; file2
type=file;perm=r;unique==keVO1+1G4; file3
type=file;perm=r;unique==keVO1+1G4; file4
type=dir;perm=cpmel;unique==SGP1; dir ® non-ascii char
type=file;perm=r;unique==SGP2; file ® non-ascii char
c � � y �N� r � �-/usr/local/lib/python3.12/test/test_ftplib.py�default_error_handlerr 9 s � � r c �: � � e Zd ZdZd� Zd� Zd� Z� fd�Zd� Z� xZ S )�DummyDTPHandlerFc � � t j j | |� || _ t � | j _ |j | _ y r )r �
async_chat�__init__� baseclass� bytearray�last_received_data�encoding��self�connr s r r zDummyDTPHandler.__init__C s: � ����$�$�T�4�0�"���,5�K����)�!�*�*��
r c �d � | j d� }| j xj |z
c_ y )N� )�recvr r )r �new_datas r �handle_readzDummyDTPHandler.handle_readI s$ � ��9�9�T�?�����)�)�X�5�)r c � � | j s3| j j d� | j � d| _ y y )N�226 transfer completeT)�dtp_conn_closedr �push�close�r s r �handle_closezDummyDTPHandler.handle_closeM s6 � � �#�#��N�N��� 7�8��J�J�L�#'�D� � $r c � �� | j j �'| j j }d | j _ |s| j � S t t | � |j
| j � � y r )r � next_data�close_when_done�superr r) �encoder )r �what� __class__s �r r) zDummyDTPHandler.pushV s\ �� ��>�>�#�#�/��>�>�+�+�D�'+�D�N�N�$���'�'�)�)�
�o�t�)�$�+�+�d�m�m�*D�Er c � � t � y r �r r+ s r �handle_errorzDummyDTPHandler.handle_error^ � � ��r )
�__name__�
__module__�__qualname__r( r r% r, r) r6 �
__classcell__�r3 s @r r r @ s"