+\h $ddlZddlZddlZddlZddlZddlZddlZddlZddl Z ddl Z ddl m Z ddlmZmZmZmZmZGddeZGddeZGdd eZy) N) NullContext)QUIC_MAX_DATAGRAMAsyncQuicConnectionAsyncQuicManagerBaseQuicStream UnexpectedEOFcReZdZfdZdZdZd dZd dZdZdZ dZ d Z xZ S) TrioQuicStreamcXt|||tj|_yN)super__init__trio Condition_wake_up)self connection stream_id __class__s Q/root/niggaflix-v3/playground/venv/lib/python3.12/site-packages/dns/quic/_trio.pyrzTrioQuicStream.__init__s  Y/( c&K |jj|ry||_|j4d{|jj d{dddd{d|_r7>77#1d{7swY xYww)Nr)_bufferhave _expectingrwait)ramounts rwait_forzTrioQuicStream.wait_fors||  ($DO}} + +mm((*** + +DO  +* + + + +sV5BA6BA<A8A< B)A:* B8A<:B<BB B BcK |jjry|j4d{|jjd{dddd{c7777 #1d{7swYxYwwr )rseen_endrrrs r wait_for_endzTrioQuicStream.wait_for_end'sq||$$&}} + +mm((*** + + +* + + + +sV-BA'BA-A)A- B!A+"B)A-+B-A?3A6 4A?;BcdK| td}ntj|}|5|jj r;|j d{|j jcdddS|jdd{tjd|j jd\}|j|d{|j j|cdddS77t7,#1swYtjjxYww)Nz!H)rr move_on_after _connectionis_h3r"rget_allrstructunpackgetdns exceptionTimeout)rtimeoutcontextsizes rreceivezTrioQuicStream.receive.s ?!$'G((1G  .%%''')))||++- . . mmA&&& --dll.>.>q.ABmmD)))||''- . .)') .mm###s_&D0.D DD 4 D0>D DA D D D ; D0D D  D  D- D0cK|j|}|jj|j||d{y7wr ) _encapsulater&write _stream_id)rdatagramis_enddatas rsendzTrioQuicStream.send>s8  *$$T__dFCCCsrArDrL __classcell__rs@rr r s1) +$ D'  rr cHeZdZdfd ZdZdZd dZdZddZdZ xZ S) TrioQuicConnectionc*t|||||||tjj|jtj d|_tj|_tj|_ d|_ d|_ y)NrF) r rrsocket_af SOCK_DGRAM_socketEvent_handshake_complete _run_done _worker_scope _send_pending)rraddressportsource source_portmanagerrs rrzTrioQuicConnection.__init__Wsi WdFKQ{{))$((F4E4EqI #'::< !"rc K |jrU|jjtjj |j|j d{|jj|jd{|jsZ|jd\}}|jrd}tjtj|z5|_|jj!t"d{}|j$j'||jt)j(dddd|_|j+||j-d{d|_ |j$j/t)j(}|D](\}}|jj1|d{*|jsZd|_ |jj3|j4j7y777'#1swYxYw77g#d|_ |jj3|j4j7wxYww)NFg)deadlineT)_sourcerYbindr,inetlow_level_address_tuplerWconnect_peer_done_get_timer_valuesr^r CancelScope current_timer]recvrr&receive_datagramtime _handle_timer_handle_eventsdatagrams_to_sendr:rAr[set)r expirationintervalr7 datagrams_s r_workerzTrioQuicConnection._worker_s" +||ll''HH44T\\488L,,&&tzz2 2 2jj)-)?)?)F&X%% #H%%!..08;Y'%)\\%6%67H%IIH$$55h DIIKX Y &*""":.))+++&+" ,,>>tyy{K #,6KHa,,++H5556/jj4DJ LL    $ $ ( ( *A 3 JYY,6DJ LL    $ $ ( ( *sJAI H5!,I H8AI,(H>H;=H>3II AI$I %I9>II I=J  JcKd} |jj}|yt|tjj j r|jre|jj|}|D]B}t|tjj jr|jj|j}|sZ|j|j |_n|j"|j |_|j$s|j'ddd{t|tjj j(s|jj|j}|s|j'|j*|j$d{En`|jj|j}|r8|j'|j*|j,d{nt|tjj j.r|j0j3nt|tjj j4r"d|_|j8j;not|tjj j<rA|jj|j}|r|j'ddd{|dz }|dkDrd}t?j@dd{M777@787w)NrTr )!r& next_event isinstanceaioquicquiceventsStreamDataReceivedr'_h3_conn handle_eventh3HeadersReceived_streamsr+r_headersheaders _trailers stream_endedr> DataReceivedr9 end_streamHandshakeCompletedr[rvConnectionTerminatedrlrYrA StreamResetrsleep)rcountevent h3_eventsh3_eventstreams rrtz!TrioQuicConnection._handle_eventss$$//1E}%!4!4!G!GH::< $ : :5 AI$-"%h 0A0A0Q0QR%)]]%6%6u%GF%#)??#:6>6F6FFO%+%5%5%=7?7G7GF$4#+#8#8*0*;*;C*F$F$F''**2C2C2P2PQ%)]]%6%6u%GF%&,&7&7$,MM83H3H'"!"!""""]]..u?F$// EM?AM MD M #M$(M  M M M M M M cK|jj|||d|_|j|jj yyw)NT)r&send_stream_datar^r]cancel)rrr9r8s rr5zTrioQuicConnection.writesI ))&$?!    )    % % ' *sA AcK|jrytj4d{}|j|jdddd{|j j y7J7!#1d{7swY1xYwwr )_closedr open_nursery start_soonr{r\rv)rnurserys rrunzTrioQuicConnection.runso << $$& - -'   t|| , - -  - - - - -sD&B A3B A7 B A5 B 5B 7B =B >B B cK| td}ntj|}|5|jj d{|j rt |jjd}t||}||j|<|cdddS7W#1swYtjjxYwwrH)rrr%r[rrlrr&get_next_available_stream_idr rr,r-r.)rr/r0rrs r make_streamzTrioQuicConnection.make_streams ?!$'G((1G  **//1 1 1zz##((EEeLI#D)4F'-DMM) $   1 mm###s/&CB BA B  CB  C% CcvK|js|jj|jd|jdd|_|jj d|_|j|jj|jjd{yy7w)Nrr}T) r_managerclosedrkr&rAr^r]rr\rr!s rrAzTrioQuicConnection.closes|| MM A 1 >DL    " " $!%D !!-""))+..%%' ' ' (sB.B90B71B9r rM) rNrOrPrr{rtr5rrrArQrRs@rrTrTVs(##+J*$X(  $(rrTcReZdZdejddffd Z ddZdZdZxZ S)TrioQuicManagerNFcBt|||t||||_yr )r rrT_nursery)rrconf verify_mode server_namerrs rrzTrioQuicManager.__init__s" {,> RP rc|j|||||\}}|r%|jj|j|Sr )_connectrrr)rr_r`rarbwant_session_ticketrstarts rrjzTrioQuicManager.connectsD#mm T6;0C U  MM $ $Z^^ 4rcK|Swr rCr!s rrDzTrioQuicManager.__aenter__rErFcKt|jj}|D]}|jd{y7wrH)list _connectionsvaluesrA)rrIrJrK connectionsrs rrLzTrioQuicManager.__aexit__sJ4,,3356 % %J""$ $ $ % %srs\ ! ):^:z~(,~(B&r