o ¯bÁ ã@sÄdZddlZddlZddlmZddlmZmZGdd„dejƒZ Gdd„dejƒZ eej ƒGd d „d ejƒƒZ Gd d „d ejƒZ Gd d„dejƒZGdd„dejƒZGdd„dejƒZgd¢ZdS)zzImplement standard (and unused) TCP protocols. These protocols are either provided by inetd, or are not provided at all. éN)Ú implementer)Ú interfacesÚprotocolc@óeZdZdZdd„ZdS)ÚEchozC As soon as any data is received, write it back (RFC 862). cCs|j |¡dS©N)Ú transportÚwrite©ÚselfÚdata©r ú8/usr/lib/python3/dist-packages/twisted/protocols/wire.pyÚ dataReceivedszEcho.dataReceivedN©Ú__name__Ú __module__Ú __qualname__Ú__doc__rr r r rró rc@r)ÚDiscardz. Discard any received data (RFC 863). cCódSrr r r r rr szDiscard.dataReceivedNrr r r rrrrc@s4eZdZdZdZdd„Zdd„Zdd„Zd d „Zd S) ÚChargenz- Generate repeating noise (RFC 864). sG@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ !"#$%&?cCs|j |d¡dS)Nr)rÚregisterProducer©r r r rÚconnectionMade-ózChargen.connectionMadecCs|j |j¡dSr)rr Únoiserr r rÚresumeProducing0rzChargen.resumeProducingcCrrr rr r rÚpauseProducing3ózChargen.pauseProducingcCrrr rr r rÚ stopProducing6r zChargen.stopProducingN) rrrrrrrrr!r r r rr%s rc@ó eZdZdZdd„Zdd„ZdS)ÚQOTDz. Return a quote of the day (RFC 865). cCó|j | ¡¡|j ¡dSr)rr ÚgetQuoteÚloseConnectionrr r rr?ózQOTD.connectionMadecCódS)zB Return a quote. May be overrriden in subclasses. s'An apple a day keeps the doctor away. r rr r rr%Cóz QOTD.getQuoteN)rrrrrr%r r r rr#:ó r#c@r")ÚWhoz/ Return list of active users (RFC 866) cCr$r)rr ÚgetUsersr&rr r rrOr'zWho.connectionMadecCr()z> Return active users. Override in subclasses. sroot r rr r rr,Sr)z Who.getUsersN)rrrrrr,r r r rr+Jr*r+c@r)ÚDaytimez8 Send back the daytime in ASCII form (RFC 867). cCs.|j t t t ¡¡¡d¡|j ¡dS)Ns )rr ÚtimeÚasctimeÚgmtimer&rr r rr_s zDaytime.connectionMadeN©rrrrrr r r rr-Zrr-c@r)ÚTimez@ Send back the time in machine readable form (RFC 868). cCs.t dtt ¡ƒ¡}|j |¡|j ¡dS)Nz!i)ÚstructÚpackÚintr.rr r&)r Úresultr r rris zTime.connectionMadeNr1r r r rr2drr2)rrrr#r+r-r2)rr3r.Úzope.interfacerÚtwisted.internetrrÚProtocolrrÚ IProducerrr#r+r-r2Ú__all__r r r rÚs