o
    b                     @   sn   d Z ddl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 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.
    N)internet)checkersportalstrcred)ftp)	deprecateusageversionsc                   @   sR   e Zd ZdZg dg dg d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p2121zset the port number)rootrz/usr/local/ftpz define the root of the ftp-site.)userAnonymous 	anonymouszName of the anonymous user.r   zroot of the ftp site)descr)
optActionsr   c                 O   s,   t jj| g|R i | | t  d S )N)r   r
   __init__
addCheckerr   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-fileTwisted      r      )category
stacklevelT)cacheN)r   getDeprecationWarningStringopt_password_filer	   VersionwarningswarnDeprecationWarningr   r   FilePasswordDB)r   filenamemsgr   r   r   r%   &   s   zOptions.opt_password_fileN)__name__
__module____qualname__synopsisoptParametersr   CompletionsCompleteDirscompData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y9   d}Y nw t||S )Nr   credCheckersr   r   iI  )r   
FTPFactoryFTPRealmr   Portalgettldr   FTPprotocolintKeyErrorr   	TCPServer)configfr   r   portnor   r   r   makeService3   s   

rD   )__doc__r'   twisted.applicationr   twisted.credr   r   r   twisted.protocolsr   twisted.pythonr   r   r	   r
   AuthOptionMixinrD   r   r   r   r   <module>   s   !