a 5i;@sfddlZddlZddlZddlZzddlZdZWneyFdZYn0ddgZGdddeZ dZ dZ d Z d Z e e Zd ZGd ddZerGd ddeZededkrbddlZeejdZeeeejdeejdee\ZZededD]BZe e\Z!Z"Z#edee"D]Z$ede$q:edqe%dS)NTFPOP3 error_protoc@s eZdZdS)rN)__name__ __module__ __qualname__rr/usr/lib64/python3.9/poplib.pyrni  ic@seZdZdZeejfddZddZddZ dd Z d d Z d d Z ddZ ddZddZddZddZddZddZddZdd:d;Z%dS)?rzUTF-8cCsP||_||_d|_td||||||_|jd|_d|_ | |_ dS)NFzpoplib.connectrbr) hostport_tls_establishedsysaudit_create_socketsockmakefilefile _debugging_getrespwelcome)selfrrtimeoutrrr__init__bs z POP3.__init__cCs(|dur|stdt|j|jf|S)Nz0Non-blocking socket (timeout=0) is not supported) ValueErrorsocketcreate_connectionrr)rrrrrrms zPOP3._create_socketcCs:|jdkrtdt|td|||j|tdS)Nz*put*zpoplib.putline)rprintreprrrrsendallCRLFrlinerrr_putlinersz POP3._putlinecCsB|jrtdt|t||j}td|r4td||dS)Nz*cmd*s[-]z*Control characters not allowed in commands) rr!r"bytesencodingresearchrr'r%rrr_putcmdzs   z POP3._putcmdcCs|jtd}t|tkr$td|jdkrruserrrrrFsz POP3.usercCs|d|S)NzPASS %srD)rZpswdrrrpass_sz POP3.pass_cCsF|d}|}|jr&tdt|t|d}t|d}||fS)NZSTATz*stat*r )r>splitrr!r"int)rZretvalZretsZ numMessagesZ sizeMessagesrrrstats    z POP3.statNcCs |dur|d|S|dS)NzLIST %sLISTr>r?rwhichrrrr;s z POP3.listcCs|d|S)NzRETR %sr?rNrrrretrsz POP3.retrcCs|d|S)NzDELE %srDrNrrrdelesz POP3.delecCs |dS)NZNOOPrDr@rrrnoop sz POP3.noopcCs |dS)NZRSETrDr@rrrrsetsz POP3.rsetcCs|d}||S)NZQUIT)r>close)rr7rrrquits z POP3.quitcCs,z|j}d|_|dur|W|j}d|_|durz`z|tjWnBty}z*|jtjkrtt |dddkrtWYd}~n d}~00W|n |0n|j}d|_|dur&zbz|tjWnDty}z*|jtjkrt |dddkrWYd}~n d}~00W|n |00dS)Nwinerrorri&') rrUrshutdownr SHUT_RDWROSErrorerrnoZENOTCONNgetattr)rrrexcrrrrUs6    z POP3.closecCs|d|S)NzRPOP %srDrErrrrpop9sz POP3.rpops\+OK.[^<]*(<.*>)cCs\t||j}|j|j}|s&tdddl}|d|}|| }| d||fS)Nz!-ERR APOP not supported by serverrr z APOP %s %s) r(r) timestampmatchrrhashlibgroupmd5 hexdigestr>)rrFpasswordZsecretmradigestrrrapop@s z POP3.apopcCs|d||fS)Nz TOP %s %srP)rrOZhowmuchrrrtopUszPOP3.topcCs |dur|d|S|dS)NzUIDL %sZUIDLrMrNrrruidl^sz POP3.uidlcCs |dS)NZUTF8rDr@rrrutf8jsz POP3.utf8cCs`dd}i}z4|d}|d}|D]}||\}}|||<q$WntyZtdYn0|S)NcSs"|d}|d|ddfS)Nasciirr )decoderI)r&Zlstrrr _parsecap}szPOP3.capa.._parsecapZCAPAr z!-ERR CAPA not supported by server)r?r)rrncapsr7ZrawcapsZcaplineZcapnmZcapargsrrrcapaps    z POP3.capacCsxts td|jrtd|}d|vr2td|durBt}|d}|j|j|j d|_|j d|_ d|_|S)Nz-ERR TLS support missing$-ERR TLS session already establishedZSTLSz!-ERR STLS not supported by serverZserver_hostnamer T) HAVE_SSLrrrpssl_create_stdlib_contextr> wrap_socketrrrr)rcontextror7rrrstlss  z POP3.stls)N)N)N)&rrrr) POP3_PORTr_GLOBAL_DEFAULT_TIMEOUTrrr'r,r4rr<r>r?rArCrFrGrKr;rQrRrSrTrVrUr^r*compiler_rhrirjrkrprxrrrrr3s@-       c@s4eZdZeddejdfddZddZdddZdS) POP3_SSLNcCs|dur|durtd|dur0|dur0td|dus@|durVddl}|dtd||_||_|durxtj||d}||_t ||||dS)Nz4context and keyfile arguments are mutually exclusivez5context and certfile arguments are mutually exclusiverzAkeyfile and certfile are deprecated, use a custom context insteadrH)certfilekeyfile) rwarningswarnDeprecationWarningr~r}rtrurwrr)rrrr~r}rrwrrrrrs"zPOP3_SSL.__init__cCs"t||}|jj||jd}|S)Nrr)rrrwrvr)rrrrrrrs  zPOP3_SSL._create_socketcCs tddS)Nrq)r)rr~r}rwrrrrxsz POP3_SSL.stls)NNN) rrr POP3_SSL_PORTrrzrrrxrrrrr|s  r|__main__r rHz Message %d:z z-----------------------)&r[r*rrrtrs ImportError__all__ Exceptionrryrr2ZLFr$r0rr|r:rargvar!rArFrGr;rKZnumMsgsZ totalSizerangeirQheadermsgr3r&rVrrrrsJ  r0