B
    0²ô`Á	  ã               @   sÎ   d Z ddlZddlZddlmZ ddlmZmZ G dd„ dejƒZ	G dd„ dejƒZ
eejƒG d	d
„ d
ejƒƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZG dd„ dejƒZddd
ddddgZdS )zzImplement standard (and unused) TCP protocols.

These protocols are either provided by inetd, or are not provided at all.
é    N)Úimplementer)ÚprotocolÚ
interfacesc               @   s   e Zd ZdZdd„ ZdS )ÚEchozC
    As soon as any data is received, write it back (RFC 862).
    c             C   s   | j  |¡ d S )N)Ú	transportÚwrite)ÚselfÚdata© r
   úE/home/dcms/DCMS/lib/python3.7/site-packages/twisted/protocols/wire.pyÚdataReceived   s    zEcho.dataReceivedN)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r
   r
   r
   r   r      s   r   c               @   s   e Zd ZdZdd„ ZdS )ÚDiscardz.
    Discard any received data (RFC 863).
    c             C   s   d S )Nr
   )r   r	   r
   r
   r   r       s    zDiscard.dataReceivedN)r   r   r   r   r   r
   r
   r
   r   r      s   r   c               @   s4   e Zd ZdZdZdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚChargenz-
    Generate repeating noise (RFC 864).
    sG   @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&?c             C   s   | j  | d¡ d S )Nr   )r   ZregisterProducer)r   r
   r
   r   ÚconnectionMade-   s    zChargen.connectionMadec             C   s   | j  | j¡ d S )N)r   r   Únoise)r   r
   r
   r   ÚresumeProducing0   s    zChargen.resumeProducingc             C   s   d S )Nr
   )r   r
   r
   r   ÚpauseProducing3   s    zChargen.pauseProducingc             C   s   d S )Nr
   )r   r
   r
   r   ÚstopProducing6   s    zChargen.stopProducingN)	r   r   r   r   r   r   r   r   r   r
   r
   r
   r   r   %   s   r   c               @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚQOTDz.
    Return a quote of the day (RFC 865).
    c             C   s   | j  |  ¡ ¡ | j  ¡  d S )N)r   r   ÚgetQuoteÚloseConnection)r   r
   r
   r   r   ?   s    zQOTD.connectionMadec             C   s   dS )zB
        Return a quote. May be overrriden in subclasses.
        s'   An apple a day keeps the doctor away.
r
   )r   r
   r
   r   r   C   s    zQOTD.getQuoteN)r   r   r   r   r   r   r
   r
   r
   r   r   :   s   r   c               @   s    e Zd ZdZdd„ Zdd„ ZdS )ÚWhoz/
    Return list of active users (RFC 866)
    c             C   s   | j  |  ¡ ¡ | j  ¡  d S )N)r   r   ÚgetUsersr   )r   r
   r
   r   r   O   s    zWho.connectionMadec             C   s   dS )z>
        Return active users. Override in subclasses.
        s   root
r
   )r   r
   r
   r   r   S   s    zWho.getUsersN)r   r   r   r   r   r   r
   r
   r
   r   r   J   s   r   c               @   s   e Zd ZdZdd„ ZdS )ÚDaytimez8
    Send back the daytime in ASCII form (RFC 867).
    c             C   s.   | j  t t t ¡ ¡¡d ¡ | j  ¡  d S )Ns   
)r   r   ÚtimeÚasctimeÚgmtimer   )r   r
   r
   r   r   _   s     zDaytime.connectionMadeN)r   r   r   r   r   r
   r
   r
   r   r   Z   s   r   c               @   s   e Zd ZdZdd„ ZdS )ÚTimez@
    Send back the time in machine readable form (RFC 868).
    c             C   s.   t  dtt ¡ ƒ¡}| j |¡ | j ¡  d S )Nz!i)ÚstructÚpackÚintr   r   r   r   )r   Úresultr
   r
   r   r   i   s    zTime.connectionMadeN)r   r   r   r   r   r
   r
   r
   r   r!   d   s   r!   )r   r   r"   Zzope.interfacer   Ztwisted.internetr   r   ZProtocolr   r   Z	IProducerr   r   r   r   r!   Ú__all__r
   r
   r
   r   Ú<module>   s   	


