/usr/lib/rads/venv/lib/python3.13/site-packages/dns/__pycache__
NameSizeModeActions
asyncbackend.cpython-313.pyc34550644editdlrm
asyncquery.cpython-313.pyc376610644editdlrm
asyncresolver.cpython-313.pyc208710644editdlrm
dnssec.cpython-313.pyc514610644editdlrm
dnssectypes.cpython-313.pyc20700644editdlrm
e164.cpython-313.pyc48490644editdlrm
edns.cpython-313.pyc258940644editdlrm
entropy.cpython-313.pyc61100644editdlrm
enum.cpython-313.pyc49300644editdlrm
exception.cpython-313.pyc74740644editdlrm
flags.cpython-313.pyc30980644editdlrm
grange.cpython-313.pyc17750644editdlrm
immutable.cpython-313.pyc38280644editdlrm
inet.cpython-313.pyc65810644editdlrm
ipv4.cpython-313.pyc27190644editdlrm
ipv6.cpython-313.pyc69210644editdlrm
message.cpython-313.pyc859310644editdlrm
name.cpython-313.pyc490600644editdlrm
namedict.cpython-313.pyc43540644editdlrm
nameserver.cpython-313.pyc147060644editdlrm
node.cpython-313.pyc163490644editdlrm
opcode.cpython-313.pyc31400644editdlrm
query.cpython-313.pyc645170644editdlrm
rcode.cpython-313.pyc44530644editdlrm
rdata.cpython-313.pyc386500644editdlrm
rdataclass.cpython-313.pyc35370644editdlrm
rdataset.cpython-313.pyc226570644editdlrm
rdatatype.cpython-313.pyc102390644editdlrm
renderer.cpython-313.pyc159450644editdlrm
resolver.cpython-313.pyc880070644editdlrm
reversename.cpython-313.pyc46930644editdlrm
rrset.cpython-313.pyc123170644editdlrm
serial.cpython-313.pyc54210644editdlrm
set.cpython-313.pyc121210644editdlrm
tokenizer.cpython-313.pyc265250644editdlrm
transaction.cpython-313.pyc288830644editdlrm
tsig.cpython-313.pyc171680644editdlrm
tsigkeyring.cpython-313.pyc28710644editdlrm
ttl.cpython-313.pyc25350644editdlrm
update.cpython-313.pyc161190644editdlrm
version.cpython-313.pyc7620644editdlrm
versioned.cpython-313.pyc148000644editdlrm
win32util.cpython-313.pyc99290644editdlrm
wire.cpython-313.pyc55500644editdlrm
xfr.cpython-313.pyc146710644editdlrm
zone.cpython-313.pyc662180644editdlrm
zonefile.cpython-313.pyc343180644editdlrm
zonetypes.cpython-313.pyc14160644editdlrm
_asyncbackend.cpython-313.pyc49850644editdlrm
_asyncio_backend.cpython-313.pyc145780644editdlrm
_ddr.cpython-313.pyc79590644editdlrm
_features.cpython-313.pyc32360644editdlrm
_immutable_ctx.cpython-313.pyc33350644editdlrm
_trio_backend.cpython-313.pyc137510644editdlrm
__init__.cpython-313.pyc7020644editdlrm
Edit: /usr/lib/rads/venv/lib/python3.13/site-packages/dns/__pycache__/query.cpython-313.pyc (64517B)
j#SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK r SSK r SSK r SSK r SSKJrJrJrJrJrJr SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK rSSK!rSSK"rSr#Sr$\RJRMS5r'\'(aUSSK(r)SSK*r*\)RVr,\)RZR\R^r0"SS\,5r1"S S \*Rd5r3O "S S 5r3\'r4SSK5r5\ Rr7"SS\RpRr5r:"SS\RpRv5r<"SS\RpRr5r="SS\RpRr5r>\R~Rr@SrASrBSrCSrDSrESrFSrSjrGSsSjrHS\S S!S 4S"jrI"S#S$\R5rKSS%SSS&S&SS'SSSS\ R\KR4S(\RRS)\PS*\\QS+\RS,\\PS-\RS.\SS/\SS0\\S1\PS2\SS3\\PS4\\S\P4S\S S5\RS6\KS!\RR4"S7jjrTS8\RRS9\WS!\W4S:jrXS8\RRS;\PS<\WS!S4S=jrYStS(\RRS)\PS>\PS*\\QS+\RS,\\PS-\RS.\SS/\SS4\\S\P4S?\\PS2\SS!\RR4S@jjrZSAr[SBr\SuSC\SD\\RR\W4SE\SF\\QS!\\R\Q44 SGjjr]SvSC\SE\\SF\\QSH\SS.\SSI\\\RR\RR4SJ\\WS/\SSK\SSL\SSM\\RRS!\4SNjjrbSwS(\RRS)\PS*\\QS+\RS,\\PS-\RSH\SS.\SS/\SSK\SSC\\SL\SS!\RR4SPjjrcSxS(\RRS)\PS*\\QS+\RS,\\PS-\RSH\SS.\SS/\SSQ\\SR\\SL\SS!\\RR\S44SSjjrdSTreSUrfSuSC\SD\\RR\W4SF\\QS!\\R\Q44SVjjrgSySC\SF\\QS.\SSI\\\RR\RR4SJ\\WS/\SS!\\RR\Q44SWjjrhSXriSzS(\RRS)\PS*\\QS+\RS,\\PS-\RS.\SS/\SSC\\S!\RR4SYjjrjSZrkS[\\PS4\\S\P4S!\5R4S\jrmS{S(\RRS)\PS*\\QS+\RS,\\PS-\RS.\SS/\SSC\\5RS]\\5RS[\\PS4\\S\P4S!\RR4S^jjroS|S(\RRS)\PS*\\QS+\RS,\\PS-\RS.\SS/\SS_\\RRS4\\S\P4S?\\PS[\\PS!\RR4S`jjrU"SaSb\R5rqSc\RRSd\ RSM\RRSe\\RS*\\QSF\QS!\4Sfjrt\RR\RRSSOSSSSSSSS&\RR4 S)\PSg\\RR\P4Sh\\RR\P4Si\\RR\P4S*\\QS+\RSI\\\RR\RR4Sj\\\RR\P4Sk\SSl\\QS,\\PS-\RSe\RSm\SSn\\RR\P4S!\4 Sojjr?SSOSSSS\qR4S)\PSc\RRSM\\RRS+\RS*\\QSl\\QS,\\PS-\RSp\qS!S4Sqjjr}g!\6a "S S 5r5GN~f=f)}zTalk to a DNS server.N)AnyDictOptionalTupleUnioncastc~UcgU[R"5- nUS::a[RReU$)N)timedns exceptionTimeout) expirationtimeouts [TU]5 X lXlX0lX@lgr)super__init__ _local_port _resolver_bootstrap_address_family)selfresolver local_portbootstrap_addressfamily __class__s rr_NetworkBackend.__init__Is$ G  ) %N&7 #!Lrc~/n[U5upx[RRU5(aUR U5 OUR bUR UR 5 Og[ U5nURn U(a[RRU5n URRXUS9n U R5nUHn [RRU 5n UcURS:wa,[RRX@R4U 5n OSn [U [R U 5n[#SU5n[%U[RRX4U 5U5 ['U5s $ [*R,e![(a Mf=f)N)r'lifetimerg@)_compute_timesr inet is_addressappendr!rr"af_for_addressr resolve_name addressesrlow_level_address_tuple _make_socketsocket SOCK_STREAMr_connect_CoreSyncStream Exceptionhttpcore ConnectError)r#hostportr local_addresssocket_optionsr2_rr'answersaddressafsourcesockattempt_expirations r connect_tcp_NetworkBackend.connect_tcpPsI*73MAxx""4((  &((4  !8!89$Z0  XX44]CF..55'6$--/ $XX,,W5 ,0@0@A0E XX==&(8(892F"F#B(:(:FC%A#z%R"88'"M* +400!%&'' '!s#6F.. F<;F<c[erNotImplementedError)r#pathrr?s rconnect_unix_socket#_NetworkBackend.connect_unix_socketws & %r)r!r"rr r) __name__ __module__ __qualname____firstlineno__rrGrM__static_attributes__ __classcell__r(s@rrrHs$ "FJ% (P15 & &rrcJ^\rSrSrSSS\R S.U4SjjrSrU=r$)_HTTPTransport|rN)r%r&r$r'c>Uc!UcSSKnURR5n[TU]"U0UD6 [ X1X$5UR lgNr) dns.resolverr$Resolverrrr_pool_network_backend) r#r%r&r$r'argskwargsr r(s rr_HTTPTransport.__init__}sO$5$=#<<002 G d -f -*9&7+DJJ 'r) rOrPrQrRr5 AF_UNSPECrrSrTrUs@rrWrW|s!"##   rrWc\rSrSrSrSrg)rWc[errJ)r#r<r=rr>s rrG_HTTPTransport.connect_tcp% %rrbN)rOrPrQrRrGrSrbrrrWrWs &rc|\rSrSrSr"SS\5r"SS\5r"SS5r"S S 5r \ S 5r S r g )sslrc\rSrSrSrg)ssl.WantReadExceptionrbNrOrPrQrRrSrbrrWantReadExceptionrm rrpc\rSrSrSrg)ssl.WantWriteExceptionrbNrorbrrWantWriteExceptionrsrqrruc\rSrSrSrg)ssl.SSLContextrbNrorbrr SSLContextrwrqrryc\rSrSrSrg) ssl.SSLSocketrbNrorbrr SSLSocketr{rqrr}c[S5e)Nzno ssl support)r9)clsr_r`s rcreate_default_contextssl.create_default_contexts,- -rrbN) rOrPrQrR CERT_NONEr9rpruryr} classmethodrrSrbrrrjrjsG            .  .rrjc\rSrSrSrSrg)UnexpectedSourcez=A DNS query response came from an unexpected address or port.rbNrOrPrQrR__doc__rSrbrrrrsGrrc\rSrSrSrSrg) BadResponsez--'' ' ::g  mm### rc"[USSSU5 g)NTFrsrs r_wait_for_readablers audJ/rc"[USSSU5 g)NFTrrs r_wait_for_writablers adJ/rc[RRXS5n[RRXS5nX4:H=(a USSUSS:H$![RRa gf=f)NrF)r r- inet_ptonr SyntaxError)rCa1a2n1n2s r_addresses_equalrsu XX  qE * XX  qE * 8 (12"QR&(( == $ $sAAA=<A=cU(dg[XU5(d3[RRUS5(a USSUSS:XagU(ag[ SUSU35e)NTrrFzgot a response from z instead of )rr r- is_multicastr)rC from_address destinationignore_unexpecteds r_matches_destinationrsl +66 k!n--,qr2BkRSRTo2U   |nL[MJ rTc4SnSn[RRU5nUnU(a9[RRU5nU(aXu:wa [ S5eOUnU(a'U(d [RR U5nU(a![RR Xa4U5nU(a![RR X#4U5nXVU4$![a U(aeNf=f![a [ S5ef=f)Nz5different address families for source and destinationz3source_port specified but address family is unknown)r r-r0r9 ValueError any_for_afr3)wherer=rD source_portwhere_must_be_addressrCrsafs r_destination_and_sourcers BK XX $ $U + hh%%f- y KB6 TXX((,F hh66 7JBO  1162GL V $$?   !, TRS S Ts!C)6D)C>=C>Dc[X5nURS5 UbURU5 U(aURUSUS9$U$![a UR 5 ef=f)NF)do_handshake_on_connectserver_hostname)socket_factory setblockingbind wrap_socketr9close)rCtyperD ssl_contextrrs rr4r4@str A e   FF6N **(- /+  H    sU[R :Xa SUSUU 3nO!U[R :Xa SUSUU 3nOUn0nU c[RRW5nURc [S5e[RRUR5(aURn URUS'URb URnU[R:XdU[R:Xa[ (dyU cc[#U 5n WRceU R%URU5n[&R("[+UR-555n [/UU WUUUUUUU U S 9 $[ (d[0eU(a*[3U[4R65(d [S 5eUR95nS S 0nU[R:[R4;nU[R<[R4;nUcSnS nO US nUSnU(a[>R@"U5nO'[CUUUU UU U US9n[4R6"UUU US9nUnU (a:URES [G[IU55S.5 URKWUUUUS9nOJ[LRN"U5RQS5nURS5n URUWUUSU 0US9nSSS5 WRVS:dURVS:a'[USURVSURX35e[RZR]URXUR^UR`UUS9n!URbRe5U!l3URiU!5(d[jeU!$!,(df  N=f)aReturn the response obtained after sending a query via DNS-over-HTTPS. *q*, a ``dns.message.Message``, the query to send. *where*, a ``str``, the nameserver IP address or the full URL. If an IP address is given, the URL will be constructed using the following schema: https://:/. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, a ``int``, the port to send the query to. The default is 443. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *session*, an ``httpx.Client``. If provided, the client session to use to send the queries. *path*, a ``str``. If *where* is an IP address, then *path* will be used to construct the URL to send the DNS query to. *post*, a ``bool``. If ``True``, the default, POST method will be used. *bootstrap_address*, a ``str``, the IP address to use to bypass resolution. *verify*, a ``bool`` or ``str``. If a ``True``, then TLS certificate verification of the server is done using the default CA bundle; if ``False``, then no verification is done; if a `str` then it specifies the path to a certificate file or directory which will be used for verification. *resolver*, a ``dns.resolver.Resolver`` or ``None``, the resolver to use for resolution of hostnames in URLs. If not specified, a new resolver with a default configuration will be used; note this is *not* the default resolver as that resolver might have been configured to use DoH causing a chicken-and-egg problem. This parameter only has an effect if the HTTP library is httpx. *family*, an ``int``, the address family. If socket.AF_UNSPEC (the default), both A and AAAA records will be retrieved. *http_version*, a ``dns.query.HTTPVersion``, indicating which HTTP version to use. Returns a ``dns.message.Message``. FNzhttps://:z https://[z]:zno hostname in URL sni_hostname)rrz)session parameter must be an httpx.Clientacceptzapplication/dns-messagerr)r>http1http2rr%r&r$r')rrr transport)z content-typezcontent-length)headerscontentr extensions=r )rrparamsr+ responded with status code z Response body: keyring request_macrr)6rr r-r.r5AF_INETAF_INET6urllibparseurlparsehostnamerr=rrrhave_dohrr1randomchoicelistr2_http3rrhttpxClientto_wirerr contextlib nullcontextrWupdatestrlenrbase64urlsafe_b64encoderstripdecodeget status_codermessage from_wirerrelapsed total_secondsr is_responser)"rrrr=rDrrrrrLrr&rr$r'rrCr@ the_sourceurlrparsedrAwirerh1h2r>r%cmrresponsetwirers" rhttpsrrsN2 V%RJ ~#((--e44  UG1TF4&1C 6?? "eWBtfTF3CJ &&s+ ?? "12 2 88  v / / & )/J~ & ;; ";;D{~~% +++HH  $*84H??. ..++FOOVDG & d73D3D3F.G H            8 z'5<<88DEE 99;D23G +..+*=*=> >B +..+*=*=> >B  "1 ] 0:0F0Fw0O"'!/  \\"Vy Q w  NN$=&)#d)n  ||% $H++D188>DKKME{{u~% #H) <c!X%9%9C%?g1(2F2F1G 0 01 3    MM)'  A   + + -AF ==   H[ s 8B P PrnamecHUc[eUHup#X!:XdM Us $ [er)KeyError)rrheadervalues r _find_headerr!9s)  >L! Nrpeerrc[US5nUc [S5e[U5nUS:a [S5eUS:dUS:a7Sn[U5S:aSUR 5-n[ US UU35eg![ a Nf=f) Ns:statuszno :status header in responserzstatus is negativerrz: r)r!rintrr r9r)rr"rr statuserrors r _check_statusr(Bs * -E }9:: ZF z.// |v| t9q= t{{},D6!=fXeWMNN$   sA;; BBrrc [RR(d [S5e[R R U5n U Rn U Rb U RnSUl UR5n [RRXSS9nU URXXV5n[U5unnURU5nURX-U 5 UR![#U55n [%UR'5X5 SSS5 [(R("5nSSS5 [R*R-U UR.UR0UUS9n[3WW- S5UlUR5U5(d[6eU$!,(df  N=f!,(df  N=f)Nz DNS-over-HTTP3 is not available.rT) verify_mode server_nameh3rr )r quic have_quicrrrrrr=idrSyncQuicManagerconnectr, make_streamsend_h3receiverr(rr r r rrmaxrr)rrrrr=rDrrrrrr url_partsrmanager connectionstartrstreamfinishrs rrrSsm 88  677 %%c*I!!H~~!~~ AD 99;Dhh&&T'G __U&F ,W5  # #G , NN3d +>>*Z"89D &..*E 8-    MM)'  A% %AF ==   H- , s%&2F<AF+F<+ F9 5F<< G cbURU5$![a [X5 Of=fM/)zReads a datagram from the socket. A Timeout exception will be raised if the operation is not completed by the expiration time. )recvfromBlockingIOErrorr)rEmax_sizers r _udp_recvr@s7  1==* * 1 t 0 1 s ,,cU(aURX5$URU5$![a [X5 Of=fMG)zSends the specified datagram to destination over the socket. A Timeout exception will be raised if the operation is not completed by the expiration time. )sendtosendr>r)rEdatarrs r _udp_sendrEsH  1{{455yy& 1 t 0 1 s,,AArEwhatrrc[U[RR5(aUR 5n[ R "5n[ XX#5nXT4$)aSend a DNS message to the specified UDP socket. *sock*, a ``socket``. *what*, a ``bytes`` or ``dns.message.Message``, the message to send. *destination*, a destination tuple appropriate for the address family of the socket, specifying where to send the query. *expiration*, a ``float`` or ``None``, the absolute time at which a timeout exception should be raised. If ``None``, no timeout will occur. Returns an ``(int, float)`` tuple of bytes sent and the sent time. )rr r Messagerr rE)rErFrr sent_timens rsend_udprKsE,$ ++,,||~ I$k6A >rrrrraise_on_truncation ignore_errorsqueryc Sn [USU5up[URXU5(dM.[R"5n [R R U UUUUUS9nU (aU bU RU5(dMU(aX4$XU 4$![R Ra:nU (a-U b*U RUR 55(dSnAMeSnAf[a U (aGMef=f)aRead a DNS message from a UDP socket. *sock*, a ``socket``. *destination*, a destination tuple appropriate for the address family of the socket, specifying where the message is expected to arrive from. When receiving a response, this would be where the associated query was sent. *expiration*, a ``float`` or ``None``, the absolute time at which a timeout exception should be raised. If ``None``, no timeout will occur. *ignore_unexpected*, a ``bool``. If ``True``, ignore responses from unexpected sources. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *keyring*, a ``dict``, the keyring to use for TSIG. *request_mac*, a ``bytes`` or ``None``, the MAC of the request (for TSIG). *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *raise_on_truncation*, a ``bool``. If ``True``, raise an exception if the TC bit is set. Raises if the message is malformed, if network errors occur, of if there is a timeout. If *destination* is not ``None``, returns a ``(dns.message.Message, float)`` tuple of the received message and the received time. If *destination* is ``None``, returns a ``(dns.message.Message, float, tuple)`` tuple of the received message, the received time, and the address where the message arrived from. *ignore_errors*, a ``bool``. If various format errors or response mismatches occur, ignore them and keep listening for a valid response. The default is ``False``. *query*, a ``dns.message.Message`` or ``None``. If not ``None`` and *ignore_errors* is ``True``, check that the received message is a response to this query, and if not keep listening for a valid response. r)rrrrrLN) r@rr'r r r r  Truncatedrr9)rErrrrrrrrLrMrNrr received_timeres r receive_udprTs| D (ujA# KK4E      %%'!1 /$7 &A6 U.u7H7H7K7K  % %l3 31{{$$ %))!))+66   s$"BD7.C,+C,,DD5c UR5n [XXE5upn[U5unnU (a[R"U 5nO[ U [ RU5nUn[UXU5 [UUUUUURURUU U U5 unnUU- Ul U (dURU5(d[eUsSSS5 $!,(df  O=fe)aReturn the response obtained after sending a query via UDP. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *ignore_unexpected*, a ``bool``. If ``True``, ignore responses from unexpected sources. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *raise_on_truncation*, a ``bool``. If ``True``, raise an exception if the TC bit is set. *sock*, a ``socket.socket``, or ``None``, the socket to use for the query. If ``None``, the default, a socket is created. Note that if a socket is provided, it must be a nonblocking datagram socket, and the *source* and *source_port* are ignored. *ignore_errors*, a ``bool``. If various format errors or response mismatches occur, ignore them and keep listening for a valid response. The default is ``False``. Returns a ``dns.message.Message``. N)rrr,rrr4r5 SOCK_DGRAMrKrTrmacr rr)rrrr=rDrrrrrLrErMrrCr begin_timerrrrrRs rudprZ&sp 99;D 7 V!Rf .g6Z 0:0F0Ft0L "f// 8 qDz2(     II EE      M+q!1!1 ) ,  s )A(C C)udp_socktcp_sockc [UUUUUUUUUSU U 5 n U S4$![RRa [ UUUUUUUUU 5 n U S4s$f=f)aReturn the response to the query, trying UDP first and falling back to TCP if UDP results in a truncated response. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *ignore_unexpected*, a ``bool``. If ``True``, ignore responses from unexpected sources. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *udp_sock*, a ``socket.socket``, or ``None``, the socket to use for the UDP query. If ``None``, the default, a socket is created. Note that if a socket is provided, it must be a nonblocking datagram socket, and the *source* and *source_port* are ignored for the UDP query. *tcp_sock*, a ``socket.socket``, or ``None``, the connected socket to use for the TCP query. If ``None``, the default, a socket is created. Note that if a socket is provided, it must be a nonblocking connected stream socket, and *where*, *source* and *source_port* are ignored for the TCP query. *ignore_errors*, a ``bool``. If various format errors or response mismatches occur while listening for UDP, ignore them and keep listening for a valid response. The default is ``False``. Returns a (``dns.message.Message``, tcp) tuple where tcp is ``True`` if and only if TCP was used. TF)rZr r rQtcp) rrrr=rDrrrrr[r\rMrs rudp_with_fallbackr_sr              %  ;;            $  s5AAc&SnUS:a=URU5nUS:Xa [S5eU[U5-nX4- nUS:aM=U$![[R 4a [ X5 N1[Ra [X5 NQf=f)zRead the specified number of bytes from sock. Keep trying until we either get the desired amount, or we hit EOF. A Timeout exception will be raised if the operation is not completed by the expiration time. rrEOF) recvEOFErrorrr>rjSSLWantReadErrorrSSLWantWriteErrorr)rEcountrrrJs r _net_readrgs A !) 1 % ACxuo% SVOE FA !) H  !5!56 1 t 0$$ 1 t 0 1s4A%B/BBcSn[U5nX4:aX0RXS5- nX4:aMgg![[R4a [ X5 N0[R a [X5 NPf=f)zWrite the specified data to the socket. A Timeout exception will be raised if the operation is not completed by the expiration time. rN)rrCr>rjrerrdr)rErDrcurrentls r _net_writerksr G D A + 1 yyh0 0G + !6!67 1 t 0## 1 t 0 1s2%A:A:9A:c [U[RR5(aUR SS9nO[ U5R SS5U-n[R"5n[XU5 [ U5U4$)a_Send a DNS message to the specified TCP socket. *sock*, a ``socket``. *what*, a ``bytes`` or ``dns.message.Message``, the message to send. *expiration*, a ``float`` or ``None``, the absolute time at which a timeout exception should be raised. If ``None``, no timeout will occur. Returns an ``(int, float)`` tuple of bytes sent and the sent time. T)prepend_lengthrbig) rr r rHrrto_bytesr rk)rErFrtcpmsgrIs rsend_tcprqsl$$ ++,,T2 T##Au-4 ItZ( K ##rc[USU5n[R"SU5un[XU5n[R"5n [R R UUUUUS9n X4$)aRead a DNS message from a TCP socket. *sock*, a ``socket``. *expiration*, a ``float`` or ``None``, the absolute time at which a timeout exception should be raised. If ``None``, no timeout will occur. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *keyring*, a ``dict``, the keyring to use for TSIG. *request_mac*, a ``bytes`` or ``None``, the MAC of the request (for TSIG). *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. Raises if the message is malformed, if network errors occur, of if there is a timeout. Returns a ``(dns.message.Message, float)`` tuple of the received message and the received time. r!Hr)rgstructunpackr r r r ) rErrrrrldatarjrrRrs r receive_tcprwsoB dAz *E ==u %DQ Tj )DIIKM  )'  A  rcXURU5nUS:XagU[R[R[R4;a9[ X5 UR [R[R5nUS:wa [U[R"U55egrZ) connect_exerrno EINPROGRESS EWOULDBLOCKEALREADYr getsockoptr5 SOL_SOCKETSO_ERROROSErrorosstrerror)rrBrerrs rr7r7Ks} ,,w C ax u  %"3"3U^^DD1)ll6,,foo> axc2;;s+,,rc UR5n [U5upU(a[R"U5n O*[ XXE5upn[ U [ RU5n U nU(d [UWU 5 [XU 5 [XX`RURU5unnUU - Ul URU5(d[eUsSSS5 $!,(df  O=fe)aUReturn the response obtained after sending a query via TCP. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *sock*, a ``socket.socket``, or ``None``, the connected socket to use for the query. If ``None``, the default, a socket is created. Note that if a socket is provided, it must be a nonblocking connected stream socket, and *where*, *port*, *source* and *source_port* are ignored. Returns a ``dns.message.Message``. N)rr,rrrr4r5r6r7rqrwrrXr rr)rrrr=rDrrrrErrYrrrCrrrrRs rr^r^VsV 99;D-g6Z 0:0F0Ft0L$; % !&"f00& 9 q Q Z 0*%( +YY M+}}Q    s (A-C C-cUR5 g![Ra [X5 O$[Ra [ X5 Of=fMYr) do_handshakerjrdrrerrs r_tls_handshakersO  . NN  ## . q -$$ . q - . sAAArcSnSn[U[5(aY[RR U5(aUnO2[RR U5(aUnO [ S5e[R"X#S9n[RRUl UcSUl URS/5 USLa[RUlU$)Nzinvalid verify string)cafilecapathFdot)rrrrLisfileisdirrrjr TLSVersionTLSv1_2minimum_versioncheck_hostnameset_alpn_protocolsrr*)rrrrrs r_make_dot_ssl_contextrs!F F&# 77>>& ! !F WW]]6 " "F45 5,,FJK"%.."8"8K%* """E7+ "%--  rrc U(a[UUUUUUUUU5 $UR5n [U5up[XXE5unnnU cU(d [ X5n [ U[ RUU U S9n[UUU5 [UU5 [UX5 [UXURURU5unnUU - UlURU5(d[ eUsSSS5 $!,(df  O=fe)aReturn the response obtained after sending a query via TLS. *q*, a ``dns.message.Message``, the query to send *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 853. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *sock*, an ``ssl.SSLSocket``, or ``None``, the socket to use for the query. If ``None``, the default, a socket is created. Note that if a socket is provided, it must be a nonblocking connected SSL stream socket, and *where*, *port*, *source*, *source_port*, and *ssl_context* are ignored. *ssl_context*, an ``ssl.SSLContext``, the context to use when establishing a TLS connection. If ``None``, the default, creates one with the default configuration. *server_hostname*, a ``str`` containing the server's hostname. The default is ``None``, which means that no hostname is known, and if an SSL context is created, hostname checking will be disabled. *verify*, a ``bool`` or ``str``. If a ``True``, then TLS certificate verification of the server is done using the default CA bundle; if ``False``, then no verification is done; if a `str` then it specifies the path to a certificate file or directory which will be used for verification. Returns a ``dns.message.Message``. N)rr)r^rr,rrr4r5r6r7rrqrwrrXr rr)rrrr=rDrrrrErrrrrYrrCrrrrRs rtlsrsz            99;D-g6Z 7 V!Rf4+OD  '   K,q*%D%( zQYY M+}}Q !   $  s 8A3C55 Dr8c >[RR(d [S5eU bU cU n SUlUR 5n U(a[ R"S5n UnO[RRXS9n U nU  U(dWRXXE5n[U5unnWRU5nURU S5 UR[U55n SSS5 [R"5nSSS5 [R R#U UR$UR&UUS9n[)WW- S5UlUR+U5(d[,eU$!,(df  N=f!,(df  N=f)a+Return the response obtained after sending a query via DNS-over-QUIC. *q*, a ``dns.message.Message``, the query to send. *where*, a ``str``, the nameserver IP address. *timeout*, a ``float`` or ``None``, the number of seconds to wait before the query times out. If ``None``, the default, wait forever. *port*, a ``int``, the port to send the query to. The default is 853. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *one_rr_per_rrset*, a ``bool``. If ``True``, put each RR into its own RRset. *ignore_trailing*, a ``bool``. If ``True``, ignore trailing junk at end of the received message. *connection*, a ``dns.quic.SyncQuicConnection``. If provided, the connection to use to send the query. *verify*, a ``bool`` or ``str``. If a ``True``, then TLS certificate verification of the server is done using the default CA bundle; if ``False``, then no verification is done; if a `str` then it specifies the path to a certificate file or directory which will be used for verification. *hostname*, a ``str`` containing the server's hostname or ``None``. The default is ``None``, which means that no hostname is known, and if an SSL context is created, hostname checking will be disabled. This value is ignored if *url* is not ``None``. *server_hostname*, a ``str`` or ``None``. This item is for backwards compatibility only, and has the same meaning as *hostname*. Returns a ``dns.message.Message``. zDNS-over-QUIC is not available.Nr)r*r+Trr )r r-r.rr/rrrr0r1r,r2rCr4rr r r rrr5rr)rrrr=rDrrrr8rrrrr7the_connection the_managerr9rr:r;rs rr-r-'sVn 88  566"x'7" AD 99;D5?5K5KD5Q#((**v*T (00fRN,W5  ' ' 0F KKd #>>*Z"89D1    MM)'  A% %AF ==   H1 0 s$ 9F-E=1F= F F Fc$\rSrSrSrSrSrSrSrg)UDPModeizHow should UDP be used in an IXFR from :py:func:`inbound_xfr()`? NEVER means "never use UDP; always use TCP" TRY_FIRST means "try to use UDP but fall back to TCP if needed" ONLY means "raise ``dns.xfr.UseTCP`` if trying UDP does not succeed" rrrrbN) rOrPrQrRrNEVER TRY_FIRSTONLYrSrbrrrrs EI Drr txn_managerrserialc #"# URSRnU[RR:HnUR 5nUR 5n UR[R:Hn U (a[XSU5 O/[R"S[U 55U -n [XU5 [RR!XX:5n Sn SnU (d[#U5unnUb UbUU:aUnU (a[%USU5unnO3['USU5n[R("SU5un['UUU5n[R*R-UUR.UR0SUUU (+US9nU R3U5n Uv UR4nU (dMUR.(a0WR6(d[R8R;S 5eSSS5 g!,(df  g=f7f) z'Given a socket, does the zone transfer.rNrsFrPrT)rrxfrorigintsig_ctxmultirz missing TSIG)questionrdtyper rdatatypeIXFRfrom_wire_originrrr5rWrErtpackrrkrInboundr,r@rgrur r rrXprocess_messagerhad_tsigr FormError)rrrNrrrris_ixfrrris_udprpinbounddonerr@ mexpirationrwirervrjrs r _inbound_xfrrs^^A  % %F ***G  ) ) +F ==?D VVv(( (F !4,T3t9-41j) f =-g6 Q "&;+C( &q%= !!Q 4}}T51!!Q 4 %% !II!!z!(& A**1-DGzzH1$2 ==--)).9 9; > = =s&CHCG>4AG>5 H> H Hzonerrdclasskeyname relativizer+use_udp keyalgorithmc #H# "SS[RR5n[U[5(a[R R U5n[RRRU5n[RRXU5nU[RR:XaURURU[RR [RR"SS9n[R$R SSSU -5nUR'US5 UbUR)XgUS 9 [+XX5unnn [-U 5unnU"X5nU (a)U[RR:wa [/S 5eU (a[0R2O[0R4n[7UUU 5n[9UUU5 [;UUUXU5S hvN S S S 5 g N !,(df  g =f7f) a/Return a generator for the responses to a zone transfer. *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *zone*, a ``dns.name.Name`` or ``str``, the name of the zone to transfer. *rdtype*, an ``int`` or ``str``, the type of zone transfer. The default is ``dns.rdatatype.AXFR``. ``dns.rdatatype.IXFR`` can be used to do an incremental transfer instead. *rdclass*, an ``int`` or ``str``, the class of the zone transfer. The default is ``dns.rdataclass.IN``. *timeout*, a ``float``, the number of seconds to wait for each response message. If None, the default, wait forever. *port*, an ``int``, the port send the message to. The default is 53. *keyring*, a ``dict``, the keyring to use for TSIG. *keyname*, a ``dns.name.Name`` or ``str``, the name of the TSIG key to use. *relativize*, a ``bool``. If ``True``, all names in the zone will be relativized to the zone origin. It is essential that the relativize setting matches the one specified to ``dns.zone.from_xfr()`` if using this generator to make a zone. *lifetime*, a ``float``, the total number of seconds to spend doing the transfer. If ``None``, the default, then there is no limit on the time the transfer may take. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *serial*, an ``int``, the SOA serial number to use as the base for an IXFR diff sequence (only meaningful if *rdtype* is ``dns.rdatatype.IXFR``). *use_udp*, a ``bool``. If ``True``, use UDP (only meaningful for IXFR). *keyalgorithm*, a ``dns.name.Name`` or ``str``, the TSIG algorithm to use. Raises on errors, and so does the generator. Returns a generator of ``dns.message.Message`` objects. c\rSrSrSrSrS\RR4Sjr Sr S S\ S\RR4SjjrS rg ) $xfr..DummyTransactionManageri cXXU(a[RROU4Ulgr)r remptyinfo)r#rrs rr-xfr..DummyTransactionManager.__init__ szSXX^^vVDIrcUR$rrr#s rorigin_information7xfr..DummyTransactionManager.origin_information s 99 rrc[errJrs r get_class.xfr..DummyTransactionManager.get_classrhrc[errJrs rreader+xfr..DummyTransactionManager.readerrhr replacementch"SS5n[[RRU"55$)Nc \rSrSrSrSrSrg)Exfr..DummyTransactionManager.writer..DummyTransactionicgrrb)r#r_kws rnopIxfr..DummyTransactionManager.writer..DummyTransaction.nopsrcUR$r)r)r#r@s r __getattr__Qxfr..DummyTransactionManager.writer..DummyTransaction.__getattr__s 88OrrbN)rOrPrQrRrrrSrbrrDummyTransactionrs $rr)rr transaction Transaction)r#rrs rwriter+xfr..DummyTransactionManager.writers) $ $335E5GH HrrN)F)rOrPrQrRrrr rdataclass RdataClassrrboolrrrrSrbrrDummyTransactionManagerr sN W  &s~~88 & & Id Is7R7R I IrrT)createINSOAz. . %u 0 0 0 0rN) algorithmzcannot do a UDP AXFR)r rTransactionManagerrrr from_textr RdataTypemaker  make_queryr find_rrset authorityrrrrdataadduse_tsigrr,rr5rWr6r4r7r)rrrrrr=rrrr+rDrrrrrrrrsetsoarCrr@rtm sock_typers rrrsJI#//"D"DI.$xx!!$' ]] $ $ ) )& 1F tW5A ### KKs~~00#--2C2CD ii!!$/?&/HI #q 7| < 7 V!Rf%X.OQ  2B6S]]////00%,!!&2D2DI b)V ,K,Aq&:FFF - ,F - ,s0GH"! HHH H"H HH"udp_modec 8Uc"[RRU5up)O[RRU5n [ XXg5upn[ U5upUR SR[RR:Xa[U[R:waG[U [RU5n[XU 5 [!XX)XM5Hn M SSS5 g[U [R&U5n[XU 5 [!XX)XM5Hn M SSS5 g![RR"a U[R$:XaeOf=fSSS5 M!,(df  N=f!,(df  g=f)a;Conduct an inbound transfer and apply it via a transaction from the txn_manager. *where*, a ``str`` containing an IPv4 or IPv6 address, where to send the message. *txn_manager*, a ``dns.transaction.TransactionManager``, the txn_manager for this transfer (typically a ``dns.zone.Zone``). *query*, the query to send. If not supplied, a default query is constructed using information from the *txn_manager*. *port*, an ``int``, the port send the message to. The default is 53. *timeout*, a ``float``, the number of seconds to wait for each response message. If None, the default, wait forever. *lifetime*, a ``float``, the total number of seconds to spend doing the transfer. If ``None``, the default, then there is no limit on the time the transfer may take. *source*, a ``str`` containing an IPv4 or IPv6 address, specifying the source address. The default is the wildcard address. *source_port*, an ``int``, the port from which to send the message. The default is 0. *udp_mode*, a ``dns.query.UDPMode``, determines how UDP is used for IXFRs. The default is ``dns.UDPMode.NEVER``, i.e. only use TCP. Other possibilities are ``dns.UDPMode.TRY_FIRST``, which means "try UDP but fallback to TCP if needed", and ``dns.UDPMode.ONLY``, which means "try UDP and raise ``dns.xfr.UseTCP`` if it does not succeed. Raises on errors. Nr)r rrextract_serial_from_queryrr,rrrrrrr4r5rWr7rUseTCPrr6)rrrNr=rr+rDrrrrCrr@rrs r inbound_xfrr9sS^ }'',,[92259 7 V!Rf%X.OQ ~~a3==#5#55(gmm:S "f// 8A QZ 0 %E7A9 8 b&,,f 5,keWQA R 6 5 77>> w||+, +9 8 8 6 5s6 E:D6 !F 63E,)E:+E,,E:: F F)T)NN) NUNrFFTNTr) NNFFNrFFFN) NrUNrFFFFNF) NrUNrFFFNNF)NFNrF)NrUNrFFN) NrNrFFNNNT) NrNrFFNTNN)~rrrenumrzros.pathrrr5rtr urllib.parsertypingrrrrrr dns._featuresr dns.exceptiondns.inet dns.messagedns.namedns.quic dns.rcodedns.rdataclass dns.rdatatype dns.serialdns.transactiondns.tsigdns.xfrrr _featureshave _have_httpxhttpcore._backends.syncr:rNetworkBackend_CoreNetworkBackend _backendssync SyncStreamr8r HTTPTransportrWrrj ImportErrorrr DNSExceptionrrrrrr TransferErrorr,rrrrrrr4rIntEnumrrcrr rHrfloatr%rrr-Headersbytesr!r(rr@rErKrNametsigKeyrTrZr_rgrkrqrwr7r^rryrr}rSyncQuicConnectionrrrrrAXFRrrdefault_algorithmrrrrrbrrr#su $    ::2 mm  ' ""11((--88O2&-2&h,,,&& .2Hs}}11HG#--))GCMM & & CMM & & %% $$800 ) "=A)%X( ./    $,,  & $ "!!'+#26"" + 3 3!D  {{D D e_D   D SM D  D D D c]D  D  D  }D  $) D ./D  D !D " [[#D N#((**%EO388++O3OeOO* $ "!#".  {{. .  . e_ .  . SM . . . .  $) . sm.  .  [[. b 1 1&#'    ##U* +   3: >"&"&#";?#&! %+/g4 g4#g4g4 g4  g4 d388==#((,,67 8 g4%g4g4g4g4 CKK'' (g4 g4Z $ #"! %X {{X Xe_X  X SM X  XXXXX 3-XX [[X| $ #"!""U  {{U U e_U   U SM U  U U U U smU smU U  3;;   $%U p * 1&#'$ $  ##U* +$$ 3: $@#'";?#&! , ,,,d388==#((,,67 8 , % ,  , 3;;   %&,^- $ "!B {{B Be_B  B SM B  BBB 3-B [[BJ.c],1$),<^^2 $ "!$(,0%)#h {{h he_h  h SM h  hhh 3== !h#..)hc]h $) h [[h\ $ "!8<#"%)Z  {{Z Z e_Z   Z SM Z  Z Z Z 445Z  $) Z smZ c]Z  [[Z z  dll  0:330: }}0: ;;  0: SM 0: e_ 0:  0: 0:l36--2D2D58^^5F5F#;?37 $ .1hh.H.HrG rG  s" #rG #--))3. /rG3>>,,c1 2 rG e_ rG  rGd388==#((,,67 8rGeCHHMM3./ 0rGrGuorG SMrGrG rGrG s*+rG  !rGp,0# $  H H33H CKK'' (H  H e_ H uo H SMHHH H},....sa00bb