U
    
W[                     @   sn   d Z ddlmZ ddlmZmZmZ ddlmZ ddl	m
Z
mZmZ ddlZG dd de
jejZd	d
 ZdS )z>
I am the support module for making a ftp server with twistd.
    )internet)portalcheckersstrcred)ftp)usage	deprecateversionsNc                   @   s^   e Zd ZdZddddgdddd	gd
dddggZejdejddidZdZ	dd Z
dd ZdS )OptionszP[options].
    WARNING: This FTP server is probably INSECURE do not use it.
    portpZ2121zset the port numberrootrz/usr/local/ftpz define the root of the ftp-site.userAnonymous Z	anonymouszName of the anonymous user.zroot of the ftp site)Zdescr)Z
optActionsc                 O   s&   t jj| f|| | t  d S )N)r   r
   __init__
addCheckerr   ZAllowAnonymousAccess)selfakw r   1/usr/lib/python3/dist-packages/twisted/tap/ftp.pyr   $   s    zOptions.__init__c              	   C   sJ   || d< t | jtdddd}tj|tdd | t	j
|dd	 d
S )z
        Specify a file containing username:password login info for
        authenticated connections. (DEPRECATED; see --help-auth instead)
        zpassword-fileZTwisted      r      )category
stacklevelT)cacheN)r   ZgetDeprecationWarningStringopt_password_filer	   ZVersionwarningswarnDeprecationWarningr   r   ZFilePasswordDB)r   filenamemsgr   r   r   r   )   s     zOptions.opt_password_fileN)__name__
__module____qualname__ZsynopsisZoptParametersr   ZCompletionsZCompleteDirsZcompDataZlongdescr   r   r   r   r   r   r
      s   


r
   c                 C   s   t  }t | d }t|| dg }| d |_| d |_||_t j|_	zt
| d }W n tk
rt   d}Y nX t||S )Nr   ZcredCheckersr   r   iI  )r   Z
FTPFactoryZFTPRealmr   ZPortalgetZtldr   ZFTPZprotocolintKeyErrorr   Z	TCPServer)Zconfigfr   r   Zportnor   r   r   makeService6   s    


r+   )__doc__Ztwisted.applicationr   Ztwisted.credr   r   r   Ztwisted.protocolsr   Ztwisted.pythonr   r   r	   r   r
   ZAuthOptionMixinr+   r   r   r   r   <module>   s   "