fXl dZddlZddlZddlZddlZddlZddlZddlZ ddlZn #e $rdZYnwxYwddl m Z ddl m Z ddl m Z ddl mZddl mZdd l mZdd l mZdd l mZdd lmZd ZGdde jZGddejejZGddeZGddeZdS))BaseSelectorEventLoopN) base_events) constants)events)futures) protocols)sslproto) transports)trsock)loggerc~ ||}t|j|zS#t$rYdSwxYwNF)get_keyboolrKeyError)selectorfdeventkeys >/opt/alt/python311/lib64/python3.11/asyncio/selector_events.py_test_selector_eventr sU(r""CJ&''' uus . <<ceZdZ d3fd Zd3ddddZ d3ddddejejddZ d4dZ fd Z d Z d Z d Z d ZdZdddejejfdZdddejejfdZddejejfdZdZdZdZdZdZdZdZdZdZdZd3dZdZdZd Z d!Z!d"Z"d5d$Z#d%Z$d&Z%d'Z&d(Z'd)Z(d*Z)d+Z*d3d,Z+d-Z,d.Z-d/Z.d0Z/d1Z0d2Z1xZ2S)6rNct|tj}t jd|jj||_| tj |_ dS)NzUsing selector: %s) super__init__ selectorsDefaultSelectorr debug __class____name__ _selector_make_self_pipeweakrefWeakValueDictionary _transports)selfrr s rrzBaseSelectorEventLoop.__init__1sv    022H )8+=+FGGG! "688extraserverc*t||||||SN)_SelectorSocketTransport)r'sockprotocolwaiterr*r+s r_make_socket_transportz,BaseSelectorEventLoop._make_socket_transport;s!'dHf(-v77 7r(F) server_sideserver_hostnamer*r+ssl_handshake_timeoutssl_shutdown_timeoutc ptj||||||| | } t||| ||| jS)N)r5r6r))r SSLProtocolr._app_transport) r'rawsockr0 sslcontextr1r3r4r*r+r5r6 ssl_protocols r_make_ssl_transportz)BaseSelectorEventLoop._make_ssl_transport@s\ + (J "7!5    !w ',V = = = =**r(c*t||||||Sr-)_SelectorDatagramTransport)r'r/r0addressr1r*s r_make_datagram_transportz.BaseSelectorEventLoop._make_datagram_transportQs$)$h*165BB Br(c4|rtd|rdS|t |j"|jd|_dSdS)Nz!Cannot close a running event loop) is_running RuntimeError is_closed_close_self_pipercloser")r'r s rrGzBaseSelectorEventLoop.closeVs ??   DBCC C >>    F    > % N " " "!DNNN & %r(c||j|jd|_|jd|_|xjdzc_dS)Nr)_remove_reader_ssockfilenorG_csock _internal_fdsr's rrFz&BaseSelectorEventLoop._close_self_pipeast DK..00111     ar(c2tj\|_|_|jd|jd|xjdz c_||j|jdS)NFr) socket socketpairrJrL setblockingrM _add_readerrK_read_from_selfrNs rr#z%BaseSelectorEventLoop._make_self_pipeis#)#4#6#6  T[ &&& &&& a ++--t/CDDDDDr(cdSr-r'datas r_process_self_dataz(BaseSelectorEventLoop._process_self_dataqs r(c |jd}|sdS||n#t$rYBt$rYdSwxYwR)NTi)rJrecvrYInterruptedErrorBlockingIOErrorrWs rrTz%BaseSelectorEventLoop._read_from_selfts  {''--E''----#   "     s77 A AAc|j}|dS |ddS#t$r$|jrt jddYdSYdSwxYw)Nz3Fail to write a null byte into the self-pipe socketTexc_info)rLsendOSError_debugr r)r'csocks r_write_to_selfz$BaseSelectorEventLoop._write_to_selfs   = F , JJu      , , ,{ , 0&*,,,,,,, , , , ,s$'AAdc n|||j||||||| dSr-)rSrK_accept_connection)r'protocol_factoryr/r;r+backlogr5r6s r_start_servingz$BaseSelectorEventLoop._start_servingsK (?)4VW.0D F F F F Fr(c t|D]h} |\} } |jrtjd|| | | dd| i} ||| | ||||} || #tttf$rYdSt$r} | j tj tjtjtjfvr|d| t%j|d|||t.j|j||||||| nYd} ~ bd} ~ wwxYwdS)Nz#%r got a new connection from %r: %rFpeernamez&socket.accept() out of system resource)message exceptionrP)rangeacceptrdr rrR_accept_connection2 create_taskr]r\ConnectionAbortedErrorrcerrnoEMFILEENFILEENOBUFSENOMEMcall_exception_handlerr TransportSocketrIrK call_laterrACCEPT_RETRY_DELAYrl)r'rjr/r;r+rkr5r6_connaddrr*rrexcs rriz(BaseSelectorEventLoop._accept_connectionsw# )# )A" )![[]] d;5L!F!'t555  '''2$T*11$dE:v)+?AA  ((((9$%57MN   ttt   9u|!& !>>> //#K%("("8">">11 '' 666OOI$@$($7$4dJ$+-B$8 ::::  ::::: # )# )sA BE7. E77B5E22E7c Kd}d} |}|} |r||||| d|||| } n|||| ||} | d{VdS#t$r| d} wxYw#t t f$rt$r@} |jr.d| d} ||| d<| | | d<|| Yd} ~ dSYd} ~ dSd} ~ wwxYw)NT)r1r3r*r+r5r6)r1r*r+z3Error on transport creation for incoming connection)rorpr0 transport) create_futurer=r2 BaseExceptionrG SystemExitKeyboardInterruptrdr{) r'rjrr*r;r+r5r6r0rr1rcontexts rrsz)BaseSelectorEventLoop._accept_connection2s  & 5''))H''))F # 44(Jv $E&*?)= 5?? !77(6!8##       !!!  -.     5 5 5{ 5N!$ '*2GJ'(+4GK(++G444444444 5 5 5 5 5 5 5s*AB"A,,"BBC,,/C''C,cf|}t|tsQ t|}n.#ttt f$rt d|dwxYw |j|}|std|d|dS#t$rYdSwxYw)NzInvalid file object: zFile descriptor z is used by transport ) isinstanceintrKAttributeError TypeError ValueErrorr& is_closingrDr)r'rrKrs r_ensure_fd_no_transportz-BaseSelectorEventLoop._ensure_fd_no_transports&#&& K KV]]__--"Iz: K K K !?!?!?@@dJ K &(0I'')) &"%r%% %%&&& & &    DD s!;+A&* B"" B0/B0c|tj|||d} |j|}|j|jc}\}}|j||tjz||f|| n8#t$r+|j |tj|dfYnwxYw|Sr-) _check_closedrHandler"rrXmodifyr EVENT_READcancelrregister r'rcallbackargshandlermaskreaderwriters rrSz!BaseSelectorEventLoop._add_reader s xtT:: .((,,C &)Z "D"66 N ! !"dY-A&A#)6"2 4 4 4!  4 4 4 N # #B (<%+TN 4 4 4 4 4 4 B2CCct|rdS |j|}|j|jc}\}}|t jz}|s|j|n|j||d|f|| dSdS#t$rYdSwxYwNFT) rEr"rrrXrr unregisterrrrr'rrrrrs rrIz$BaseSelectorEventLoop._remove_readers >>   5 .((,,C&)Z "D"66 Y)) )D @))"----%%b$v???! tu   55 sB)) B76B7c|tj|||d} |j|}|j|jc}\}}|j||tjz||f|| n8#t$r+|j |tjd|fYnwxYw|Sr-) rrrr"rrXrr EVENT_WRITErrrrs r _add_writerz!BaseSelectorEventLoop._add_writer.s xtT:: .((,,C &)Z "D"66 N ! !"dY-B&B#)6"2 4 4 4!  4 4 4 N # #B (=%)6N 4 4 4 4 4 4 rcv |rdS |j|}|j|jc}\}}|t jz}|s|j|n|j|||df|| dSdS#t$rYdSwxYwr) rEr"rrrXrrrrrrrs r_remove_writerz$BaseSelectorEventLoop._remove_writer>s' >>   5 .((,,C&)Z "D"66 Y** *D @))"----%%b$???! tu   55 sB** B87B8cP |||j||g|RdSr-)rrSr'rrrs r add_readerz BaseSelectorEventLoop.add_readerUs<$ $$R(((X-------r(cX ||||Sr-)rrIr'rs r remove_readerz#BaseSelectorEventLoop.remove_readerZ-' $$R(((""2&&&r(cP |||j||g|RdSr-)rrrs r add_writerz BaseSelectorEventLoop.add_writer_s<% $$R(((X-------r(cX ||||Sr-)rrrs r remove_writerz#BaseSelectorEventLoop.remove_writerdrr(c K tj||jr'|dkrt d ||S#t tf$rYnwxYw|}| }| || ||j |||}| tj|j|||d{VSNrthe socket must be non-blockingr)r_check_ssl_socketrd gettimeoutrr[r]r\rrKrrS _sock_recvadd_done_callback functoolspartial_sock_read_done)r'r/nfutrrs r sock_recvzBaseSelectorEventLoop.sock_recvis %d+++ ; @4??,,11>?? ? 99Q<< !12    D   "" [[]] $$R(((!!"dosD!DD   d2Bv F F F H H HyyyyyyAA0/A0c`||s||dSdSr-) cancelledrr'rrrs rrz%BaseSelectorEventLoop._sock_read_done8 >!1!1!3!3>   r " " " " " >r(c*|rdS ||}||dS#ttf$rYdSt t f$rt$r }||Yd}~dSd}~wwxYwr-) doner[ set_resultr]r\rrr set_exception)r'rr/rrXrs rrz BaseSelectorEventLoop._sock_recvs 88::  F !99Q<?? ? >>#&& &!12    D   "" [[]] $$R(((!!"d&:CsKK   d2Bv F F F H H Hyyyyyyrc*|rdS ||}||dS#ttf$rYdSt t f$rt$r }||Yd}~dSd}~wwxYwr-) rrrr]r\rrrr)r'rr/rnbytesrs rrz%BaseSelectorEventLoop._sock_recv_intos 88::  F #^^C((F NN6 " " " " " !12    FF-.     # # #   c " " " " " " " " " #rc K tj||jr'|dkrt d ||S#t tf$rYnwxYw|}| }| || ||j |||}| tj|j|||d{VSr)rrrdrrrecvfromr]r\rrKrrS_sock_recvfromrrrr)r'r/bufsizerrrs r sock_recvfromz#BaseSelectorEventLoop.sock_recvfroms  %d+++ ; @4??,,11>?? ? ==)) )!12    D   "" [[]] $$R(((!!"d&93gNN   d2Bv F F F H H Hyyyyyyrc*|rdS ||}||dS#ttf$rYdSt t f$rt$r }||Yd}~dSd}~wwxYwr-) rrrr]r\rrrr)r'rr/rresultrs rrz$BaseSelectorEventLoop._sock_recvfroms 88::  F #]]7++F NN6 " " " " " !12    FF-.     # # #   c " " " " " " " " " #rrc0K tj||jr'|dkrt d|st |} |||S#ttf$rYnwxYw| }| }| || ||j ||||}|tj|j|||d{VSr)rrrdrrlen recvfrom_intor]r\rrKrrS_sock_recvfrom_intorrrr)r'r/rrrrrs rsock_recvfrom_intoz(BaseSelectorEventLoop.sock_recvfrom_intos< %d+++ ; @4??,,11>?? ? XXF %%c622 2!12    D   "" [[]] $$R(((!!"d&>T3"(**   d2Bv F F F H H HyyyyyysA..BBc,|rdS |||}||dS#ttf$rYdSt t f$rt$r }||Yd}~dSd}~wwxYwr-) rrrr]r\rrrr)r'rr/rrrrs rrz)BaseSelectorEventLoop._sock_recvfrom_intos 88::  F #''W55F NN6 " " " " " !12    FF-.     # # #   c " " " " " " " " " #sABB3BBc XK tj||jr'|dkrt d ||}n#t tf$rd}YnwxYw|t|krdS| }| }| || ||j ||t||g}|t!j|j|||d{VSr)rrrdrrrbr]r\rrrKrr _sock_sendall memoryviewrrr_sock_write_done)r'r/rXrrrrs r sock_sendallz"BaseSelectorEventLoop.sock_sendall sH  %d+++ ; @4??,,11>?? ?  $AA!12   AAA  D >> F  "" [[]] $$R(((!!"d&8#t",T"2"2QC99   d3R G G G I I IyyyyyysAA32A3c|rdS|d} |||d}nQ#ttf$rYdStt f$rt $r }||Yd}~dSd}~wwxYw||z }|t|kr| ddS||d<dSNr) rrbr]r\rrrrrr)r'rr/viewposstartrrs rrz#BaseSelectorEventLoop._sock_sendall*s 88::  FA  $uvv,''AA!12    FF-.          c " " " FFFFF    CII   NN4 CFFFs>B B ,BB cK tj||jr'|dkrt d |||S#t tf$rYnwxYw|}| }| || ||j ||||}| tj|j|||d{VSr)rrrdrrsendtor]r\rrKrr _sock_sendtorrrr)r'r/rXr@rrrs r sock_sendtoz!BaseSelectorEventLoop.sock_sendto@s)  %d+++ ; @4??,,11>?? ? ;;tW-- -!12    D   "" [[]] $$R(((!!"d&7dD")++   d3R G G G I I IyyyyyysAA10A1c.|rdS ||d|}||dS#ttf$rYdSt t f$rt$r }||Yd}~dSd}~wwxYwr) rrrr]r\rrrr)r'rr/rXr@rrs rrz"BaseSelectorEventLoop._sock_sendto[s 88::  F  D!W--A NN1      !12    FF-.     # # #   c " " " " " " " " " #sABB4BBcK tj||jr'|dkrt d|jt jks!tjrR|jt j kr=| ||j|j |j |d{V}|d\}}}}}| }|||| |d{V d}S#d}wxYw)Nrr)familytypeprotoloop)rrrdrrrrPAF_INET _HAS_IPv6AF_INET6_ensure_resolvedrrr _sock_connect)r'r/r@resolvedrrs r sock_connectz"BaseSelectorEventLoop.sock_connectjs+  %d+++ ; @4??,,11>?? ? ;&. ( (% )*.+*H*H!22 $)4:3H#+1+ Aq!Q  "" 3g... 999999 CC$CJJJJs %C00C4c|} |||dn#ttf$re|||||j|||}|tj |j ||YnCB>B94C9B>>CC cK tj||jr'|dkrt d|}||||d{VS)Nrr)rrrdrrr _sock_accept)r'r/rs r sock_acceptz!BaseSelectorEventLoop.sock_accepts  %d+++ ; @4??,,11>?? ?  "" #t$$$yyyyyyr(c|} |\}}|d|||fdS#tt f$re|||||j||}| tj |j ||YdSttf$rt$r }||Yd}~dSd}~wwxYw)NFr)rKrrrRrr]r\rrSrrrrrrrrr)r'rr/rrr@rrs rrz"BaseSelectorEventLoop._sock_acceptsI [[]] , KKMMMD'   U # # # NND'? + + + + + !12 L L L  ( ( , , ,%%b$*;S$GGF  ! !!$"66JJJ L L L L L L-.     # # #   c " " " " " " " " " #s,AA2D D *DD cK|j|j=|}||d{V ||j|||dd{V ||r|||j|j<S#||r|||j|j<wxYw)NF)fallback) r&_sock_fd is_reading pause_reading_make_empty_waiter sock_sendfile_sock_reset_empty_waiterresume_reading)r'transpfileoffsetcountrs r_sendfile_nativez&BaseSelectorEventLoop._sendfile_natives1  V_ -**,,''))))))))) 7++FL$5:,<<<<<<<< <  & & ( ( ( (%%'''06D V_ - -  & & ( ( ( (%%'''06D V_ - 6 6 6 6s $B22;C-cF|D]\}}|j|jc}\}}|tjzr4|2|jr||n|||tjzr4|2|jr||||dSr-) fileobjrXrr _cancelledrI _add_callbackrr)r' event_listrrrrrs r_process_eventsz%BaseSelectorEventLoop._process_eventss# / /IC(+ SX %G%ffi** /v/A$/''0000&&v...i++ /0B$/''0000&&v... / /r(c||||dSr-)rIrKrG)r'r/s r _stop_servingz#BaseSelectorEventLoop._stop_servings/ DKKMM*** r(r-NNN)r)3r! __module__ __qualname__rr2rSSL_HANDSHAKE_TIMEOUTSSL_SHUTDOWN_TIMEOUTr=rArGrFr#rYrTrfrlrirsrrSrIrrrrrrrrrrrrrrrrrrrrrrrrrrrr __classcell__r s@rrr+s 9999997%)$77777 9=+ $t"+"A!*!? +++++$CGBBBB " " " " "   EEE      ,,,&#'tS-6-L,5,JFFFFD#"+"A!*!? ,),),),)`D"+"A!*!? -5-5-5-5^&&&$ * .... ''' ... ''' ,####!!! *###".###"2###">,6   2.####*   ,,," 7 7 7 / / /r(rceZdZdZeZdZdfd ZdZdZ dZ dZ dZ d Z d Zd Zd Zejfd ZddZdZdZdZdZxZS)_SelectorTransportiNct||tj||jd< ||jd<n#t $r d|jd<YnwxYwd|jvr= ||jd<n#tj $r d|jd<YnwxYw||_ | |_ d|_ ||||_||_d|_d|_d|_|j|j||j|j <dS)NrPsocknamernFr)rrr r|_extra getsocknamerc getpeernamerPerrorrrKr _protocol_connected set_protocol_server_buffer_factory_buffer _conn_lost_closing_paused_attachr&)r'rr/r0r*r+r s rrz_SelectorTransport.__init__so %%% & 6t < < H +&*&6&6&8&8DK # # + + +&*DK # # # + T[ ( ( /*.*:*:*<*< J''< / / /*. J''' /   #(  (### ++--   < # L " " "*.'''s$AA54A5BB;:B;c|jjg}|j|dn|jr|d|d|j|j|jst|jj |jtj }|r|dn|dt|jj |jtj }|rd}nd}| }|d|d |d d d |S) Nclosedclosingzfd=z read=pollingz read=idlepollingidlezwrite=z<{}> )r r!rappendr5r _looprErr"rrrget_write_buffer_sizeformatjoin)r'infor;staters r__repr__z_SelectorTransport.__repr__s]'( :  KK ! ! ! ! ] # KK " " " )$-))*** : !$**>*>*@*@ !*4:+?+/=):NPPG ) N++++ K(((*4:+?+/=+4+@BBG !0022G KK=%==7=== > > >}}SXXd^^,,,r(c0|ddSr-) _force_closerNs rabortz_SelectorTransport.abort8s $r(c"||_d|_dSNT) _protocolr/)r'r0s rr0z_SelectorTransport.set_protocol;s!#'   r(c|jSr-)rLrNs r get_protocolz_SelectorTransport.get_protocol?s ~r(c|jSr-)r5rNs rrz_SelectorTransport.is_closingBs }r(c<| o|j Sr-)rr6rNs rr z_SelectorTransport.is_readingEs??$$$9T\)99r(c|sdSd|_|j|j|jrt jd|dSdS)NTz%r pauses reading)r r6r@rIr  get_debugr rrNs rr z _SelectorTransport.pause_readingHsq    F  !!$-000 :   ! ! 4 L,d 3 3 3 3 3 4 4r(c|js|jsdSd|_||j|j|jrtjd|dSdS)NFz%r resumes reading) r5r6rSr  _read_readyr@rRr rrNs rrz!_SelectorTransport.resume_readingPsu =    F  (8999 :   ! ! 5 L-t 4 4 4 4 4 5 5r(c|jrdSd|_|j|j|jsQ|xjdz c_|j|j|j|jddSdSNTr) r5r@rIr r3r4r call_soon_call_connection_lostrNs rrGz_SelectorTransport.closeXs =  F  !!$-000| C OOq OO J % %dm 4 4 4 J !;T B B B B B C Cr(cv|j1|d|t||jdSdS)Nzunclosed transport )source)rResourceWarningrG)r'_warns r__del__z_SelectorTransport.__del__bsL : ! E000/$ O O O O J        " !r(Fatal error on transportct|tr2|jrt jd||dn$|j||||jd||dS)Nz%r: %sTr`)rorprr0) rrcr@rRr rr{rLrH)r'rros r _fatal_errorz_SelectorTransport._fatal_errorgs c7 # # z##%% E XtWtDDDD J - -" ! N //    #r(cP|jrdS|jr8|j|j|j|js&d|_|j|j|xjdz c_|j|j |dSrV) r4r3clearr@rr r5rIrWrX)r'rs rrHz_SelectorTransport._force_closeus ?  F < 5 L   J % %dm 4 4 4} 5 DM J % %dm 4 4 4 1 T7=====r(c |jr|j||jd|_d|_d|_|j}||d|_dSdS#|jd|_d|_d|_|j}||d|_wxYwr-)r/rLconnection_lostrrGr@r1_detach)r'rr+s rrXz(_SelectorTransport._call_connection_losts $' 4..s333 J     DJ!DNDJ\F!   # "! J     DJ!DNDJ\F!   # ####s !A99AC c*t|jSr-)rr3rNs rrAz(_SelectorTransport.get_write_buffer_sizes4<   r(cZ|sdS|jj||g|RdSr-)r r@rSrs rrSz_SelectorTransport._add_readers>    F r83d333333r()NN)r^)r!r!r"max_size bytearrayr2rrrFrIr0rNrr r rrGwarningswarnr]r`rHrXrArSr%r&s@rr(r(sEHO E//////8---8   (((:::444555CCC%M     > > > $ $ $!!!4444444r(r(ceZdZdZejjZ dfd ZfdZ dZ dZ dZ dZ d Zd Zd Zd Zfd ZdZdZxZS)r.TNcd|_t|||||d|_d|_t j|j|j |j j ||j |j |j |j|(|j tj|ddSdSr)_read_ready_cbrr_eof _empty_waiterr _set_nodelayrr@rWrLconnection_maderSr rTr_set_result_unless_cancelled)r'rr/r0r1r*r+r s rrz!_SelectorSocketTransport.__init__s# tXuf=== !  ,,, T^;TBBB T-!]D,< > > >   J !E!' / / / / /  r(ct|tjr |j|_n |j|_t |dSr-)rr BufferedProtocol_read_ready__get_bufferrn_read_ready__data_receivedrr0)r'r0r s rr0z%_SelectorSocketTransport.set_protocolsP h : ; ; B"&">D  "&"AD  X&&&&&r(c.|dSr-)rnrNs rrTz$_SelectorSocketTransport._read_readys r(c|jrdS |jd}t|st dn?#t t f$rt$r!}||dYd}~dSd}~wwxYw |j |}nR#ttf$rYdSt t f$rt$r!}||dYd}~dSd}~wwxYw|s| dS |j|dS#t t f$rt$r!}||dYd}~dSd}~wwxYw)Nz%get_buffer() returned an empty bufferz/Fatal error: protocol.get_buffer() call failed.$Fatal read error on socket transportz3Fatal error: protocol.buffer_updated() call failed.)r4rL get_bufferrrDrrrr`rrr]r\_read_ready__on_eofbuffer_updated)r'rrrs rrvz0_SelectorSocketTransport._read_ready__get_buffers ?  F .++B//Cs88 L"#JKKK L-.          F H H H FFFFF   Z))#..FF!12    FF-.          c#I J J J FFFFF    $ $ & & & F L N ) )& 1 1 1 1 1-.     L L L   J L L L L L L L L L LsM8ABA;;BBC.3C. C))C. D&&E"EE"c|jrdS |j|j}nR#tt f$rYdSt tf$rt$r!}| |dYd}~dSd}~wwxYw|s| dS |j |dS#t tf$rt$r!}| |dYd}~dSd}~wwxYw)Nr{z2Fatal error: protocol.data_received() call failed.) r4rr[rhr]r\rrrr`r}rL data_received)r'rXrs rrwz3_SelectorSocketTransport._read_ready__data_receivedsp ?  F :??4=11DD!12    FF-.          c#I J J J FFFFF    $ $ & & & F K N ( ( . . . . .-.     K K K   I K K K K K K K K K Ks2+A:A:A55A:B22C. C))C.c|jrtjd| |j}n?#t tf$rt$r!}| |dYd}~dSd}~wwxYw|r!|j |j dS| dS)Nz%r received EOFz1Fatal error: protocol.eof_received() call failed.) r@rRr rrL eof_receivedrrrr`rIr rG)r' keep_openrs rr}z,_SelectorSocketTransport._read_ready__on_eofs :   ! ! 2 L*D 1 1 1 3355II-.          H J J J FFFFF    J % %dm 4 4 4 4 4 JJLLLLLsA B%BBc t|tttfs$t dt |j|jrtd|j td|sdS|j r;|j tj krtjd|xj dz c_ dS|js |j|}||d}|sdSnQ#t$t&f$rYn>t(t*f$rt,$r!}||dYd}~dSd}~wwxYw|j|j|j|j||dS)N/data argument must be a bytes-like object, not z%Cannot call write() after write_eof()z(unable to write; sendfile is in progresssocket.send() raised exception.r%Fatal write error on socket transport)rbytesrirrrr!rorDrpr4r!LOG_THRESHOLD_FOR_CONNLOST_WRITESr warningr3rrbr]r\rrrr`r@rr  _write_readyextend_maybe_pause_protocol)r'rXrrs rwritez_SelectorSocketTransport.writes$ : >?? <;#'::#6;;<< < 9 HFGG G   )IJJ J  F ? )"MMM@AAA OOq OO F| E JOOD))ABBxF$%56    12       !!#'NOOO  J " "4=$2C D D D D!!! ""$$$$$sC**D8=D8D33D8c"|jrdS |j|j}|r |jd|=||js|j|j|j|j d|j r| ddS|j r(|j tjdSdSdS#t t"f$rYdSt$t&f$rt($r}|j|j|j||d|j |j|Yd}~dSYd}~dSd}~wwxYw)Nr)r4rrbr3_maybe_resume_protocolr@rr rprr5rXroshutdownrPSHUT_WRr]r\rrrrbr`r)r'rrs rrz%_SelectorSocketTransport._write_ready8s ?  F 8  --A %L!$  ' ' ) ) )< 8 ))$-888%1&11$777=8..t44444Y8J''77777 8 8 88) !12    DD-.     6 6 6 J % %dm 4 4 4 L     c#J K K K!-"00555555555.-----  6sC F4FA/F  Fc|js|jrdSd|_|js&|jt jdSdSrK)r5ror3rrrPrrNs r write_eofz"_SelectorSocketTransport.write_eofVsS = DI  F | 0 J   / / / / / 0 0r(cdSrKrVrNs r can_write_eofz&_SelectorSocketTransport.can_write_eof]str(ct||j)|jt ddSdS)NzConnection is closed by peer)rrXrprConnectionError)r'rr s rrXz._SelectorSocketTransport._call_connection_lost`sb %%c***   )   , , >?? A A A A A * )r(c|jtd|j|_|js|jd|jS)NzEmpty waiter is already set)rprDr@rr3rrNs rrz+_SelectorSocketTransport._make_empty_waiterfsZ   )<== =!Z5577| 0   ) )$ / / /!!r(cd|_dSr-)rprNs rrz,_SelectorSocketTransport._reset_empty_waiterns!r(r )r!r!r"_start_tls_compatibler _SendfileMode TRY_NATIVE_sendfile_compatiblerr0rTrvrwr}rrrrrXrrr%r&s@rr.r.s* $2=48$(//////,'''''#L#L#LJKKK2*%%%%%%N888<000AAAAA """"""""""r(r.cLeZdZejZ dfd ZdZdZddZ dZ xZ S) r?Nc`t||||||_d|_|j|jj||j|j|j |j |(|jtj |ddSdSr) rr_address _buffer_sizer@rWrLrrrSr rTrrs)r'rr/r0r@r1r*r s rrz#_SelectorDatagramTransport.__init__vs tXu555  T^;TBBB T-!]D,< > > >   J !E!' / / / / /  r(c|jSr-)rrNs rrAz0_SelectorDatagramTransport.get_write_buffer_sizes   r(c|jrdS |j|j\}}|j||dS#t tf$rYdSt$r%}|j |Yd}~dSd}~wttf$rt$r!}| |dYd}~dSd}~wwxYw)Nz&Fatal read error on datagram transport)r4rrrhrLdatagram_receivedr]r\rcerror_receivedrrrr`r'rXrrs rrTz&_SelectorDatagramTransport._read_readys ?  F 9,,T];;JD$ N , ,T4 8 8 8 8 8 !12    DD / / / N ) )# . . . . . . . . .-.     M M M   c#K L L L L L L L L L Ms)"A C C'BC%CCc t|tttfs$t dt |j|sdS|jr)|d|jfvrtd|j|j}|j rB|jr;|j tj krtj d|xj dz c_ dS|js |jdr|j|n|j||dS#t&t(f$r(|j|j|jYnkt2$r%}|j|Yd}~dSd}~wt8t:f$rt<$r!}||dYd}~dSd}~wwxYw|j t||f|xj!tE|z c_!|#dS)Nrz!Invalid address: must be None or rrrn'Fatal write error on datagram transport)$rrrirrrr!rrr4rrr rr3r+rrbrr]r\r@rr  _sendto_readyrcrLrrrrr`r?rrrrs rrz!_SelectorDatagramTransport.sendtosi$ : >?? <;#'::#6;;<< <  F = !D$-000 G GGIII=D ? t} )"MMM@AAA OOq OO F|  ;z*2JOOD))))J%%dD111#%56 J J J &&t}d6HIIIII   --c222 12       !!BDDD  U4[[$/000 SYY& ""$$$$$s+ AD6F1 F1E22F1F,,F1cD|jr=|j\}}|xjt|zc_ |jdr|j|n|j||n#ttf$r<|j ||f|xjt|z c_Ynst$r%}|j |Yd}~dSd}~wttf$rt $r!}||dYd}~dSd}~wwxYw|j=||js=|j|j|jr|ddSdSdS)Nrnr)r3popleftrrr+rrbrr]r\ appendleftrcrLrrrrr`rr@rr r5rXrs rrz(_SelectorDatagramTransport._sendto_readysl --//JD$   T *   ;z*2JOOD))))J%%dD111#%56    ''t 555!!SYY.!!   --c222 12       !!BDDD #l , ##%%%| 1 J % %dm 4 4 4} 1**400000 1 1 1 1s,ABA D; D;C<<D;D66D;r r-) r!r!r" collectionsdequer2rrArTrrr%r&s@rr?r?rs!'O59$( / / / / / /!!!999 *%*%*%*%X1111111r(r?)__all__rrvrrrPrjr$ssl ImportErrorrrrrr r r r logr r BaseEventLoopr_FlowControlMixin Transportr(r.r?rVr(rrs% #  JJJJ CCC(((F F F F F K5F F F Ra4a4a4a4a45#-a4a4a4HW"W"W"W"W"1W"W"W"tl1l1l1l1l1!3l1l1l1l1l1s &00