dnspython 2.7.0__tar.gz → 2.8.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {dnspython-2.7.0 → dnspython-2.8.0}/PKG-INFO +42 -42
- {dnspython-2.7.0 → dnspython-2.8.0}/README.md +22 -21
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/__init__.py +2 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/_asyncbackend.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/_asyncio_backend.py +6 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/_features.py +5 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/_immutable_ctx.py +1 -1
- dnspython-2.8.0/dns/_no_ssl.py +61 -0
- dnspython-2.8.0/dns/_tls_util.py +19 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/_trio_backend.py +4 -2
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/asyncquery.py +131 -91
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/asyncresolver.py +38 -35
- dnspython-2.8.0/dns/btree.py +850 -0
- dnspython-2.8.0/dns/btreezone.py +367 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssec.py +73 -78
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssecalgs/__init__.py +9 -6
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssecalgs/base.py +3 -3
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssecalgs/cryptography.py +4 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssecalgs/dsa.py +3 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssecalgs/ecdsa.py +7 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssecalgs/eddsa.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssecalgs/rsa.py +3 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/e164.py +6 -6
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/edns.py +41 -22
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/entropy.py +6 -6
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/enum.py +8 -11
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/exception.py +4 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/grange.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/inet.py +2 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/ipv4.py +4 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/ipv6.py +4 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/message.py +109 -88
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/name.py +21 -16
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/nameserver.py +16 -18
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/node.py +3 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/opcode.py +3 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/query.py +296 -175
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/quic/__init__.py +16 -18
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/quic/_asyncio.py +14 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/quic/_common.py +11 -6
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/quic/_sync.py +32 -21
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/quic/_trio.py +6 -2
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rcode.py +2 -2
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdata.py +67 -43
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdataset.py +31 -35
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdatatype.py +2 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/AMTRELAY.py +3 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/CAA.py +1 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/CERT.py +3 -6
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/CSYNC.py +1 -1
- dnspython-2.8.0/dns/rdtypes/ANY/DSYNC.py +72 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/HIP.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/L32.py +1 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/L64.py +1 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/LOC.py +8 -14
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/LP.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/NID.py +1 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/NSEC3.py +2 -8
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/NSEC3PARAM.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/OPENPGPKEY.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/RRSIG.py +9 -11
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/SOA.py +1 -9
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/SSHFP.py +3 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/TKEY.py +4 -11
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/URI.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/ZONEMD.py +3 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/__init__.py +1 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/CH/A.py +1 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/APL.py +2 -2
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/DHCID.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/IPSECKEY.py +3 -7
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/NAPTR.py +6 -7
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/PX.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/SRV.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/WKS.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/dnskeybase.py +2 -6
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/dsbase.py +3 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/euibase.py +4 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/mxbase.py +1 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/svcbbase.py +10 -8
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/tlsabase.py +3 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/txtbase.py +8 -5
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/util.py +19 -7
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/renderer.py +13 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/resolver.py +128 -113
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/reversename.py +3 -2
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rrset.py +21 -19
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/tokenizer.py +18 -20
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/transaction.py +18 -16
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/tsig.py +9 -2
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/tsigkeyring.py +2 -2
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/ttl.py +2 -4
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/update.py +16 -13
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/version.py +5 -21
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/versioned.py +29 -27
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/win32util.py +226 -30
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/wire.py +9 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/xfr.py +49 -36
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/zone.py +107 -79
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/zonefile.py +42 -30
- dnspython-2.8.0/examples/mx-typed.py +11 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/xfr.py +5 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/pyproject.toml +30 -19
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/example +3 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/example1.good +2 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/example2.good +2 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/example3.good +2 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/example4.good +2 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_async.py +28 -0
- dnspython-2.8.0/tests/test_btree.py +722 -0
- dnspython-2.8.0/tests/test_btreezone.py +236 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_ddr.py +3 -3
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_dnssec.py +15 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_doh.py +11 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_edns.py +10 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_query.py +12 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rdata.py +52 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_resolver.py +25 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_svcb.py +6 -3
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_tsig.py +36 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_xfr.py +37 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_zone.py +27 -20
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/util.py +19 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/util/generate-features +11 -1
- {dnspython-2.7.0 → dnspython-2.8.0}/.gitignore +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/LICENSE +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/_ddr.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/asyncbackend.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/dnssectypes.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/flags.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/immutable.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/namedict.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/py.typed +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdataclass.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/AFSDB.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/AVC.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/CDNSKEY.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/CDS.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/CNAME.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/DLV.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/DNAME.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/DNSKEY.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/DS.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/EUI48.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/EUI64.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/GPOS.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/HINFO.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/ISDN.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/MX.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/NINFO.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/NS.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/NSEC.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/OPT.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/PTR.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/RESINFO.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/RP.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/RT.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/SMIMEA.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/SPF.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/TLSA.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/TSIG.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/TXT.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/WALLET.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/ANY/X25.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/CH/__init__.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/A.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/AAAA.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/HTTPS.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/KX.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/NSAP.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/NSAP_PTR.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/SVCB.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/IN/__init__.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/__init__.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/rdtypes/nsbase.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/serial.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/set.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/dns/zonetypes.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/async_dns.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/ddns.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/ddr.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/doh-json.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/doh.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/doq.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/dot.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/e164.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/ecs.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/edns.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/edns_resolver.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/mx.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/name.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/query_specific.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/receive_notify.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/reverse.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/reverse_name.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/send_notify.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/tsig.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/wire_read_tcp.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/examples/zonediff.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/__init__.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/doh.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/doq.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/keys.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/md_module.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/mx-2-0.pickle +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/nanonameserver.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/query +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/stxt_module.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/svcb_test_vectors.generic +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/svcb_test_vectors.text +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_address.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_bugs.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_constants.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_dnssecalgs.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_doq.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_entropy.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_exceptions.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_features.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_flags.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_generate.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_grange.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_immutable.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_message.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_name.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_namedict.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_nsec3.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_nsec3_hash.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_ntoaaton.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_processing_order.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rdataset.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rdtypeandclass.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rdtypeanydnskey.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rdtypeanyeui.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rdtypeanyloc.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rdtypeanytkey.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_renderer.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_resolution.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_resolver_override.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rrset.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_rrset_reader.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_serial.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_set.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_tokenizer.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_transaction.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_tsigkeyring.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_ttl.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_update.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_wire.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/test_zonedigest.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/tls/ca.crt +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/tls/private.pem +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/tls/public.crt +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/ttxt_module.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/tests/utest.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/util/constants-tool +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/util/generate-mx-pickle.py +0 -0
- {dnspython-2.7.0 → dnspython-2.8.0}/util/generate-rdatatype-doc.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
2
|
Name: dnspython
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.8.0
|
|
4
4
|
Summary: DNS toolkit
|
|
5
5
|
Project-URL: homepage, https://www.dnspython.org
|
|
6
6
|
Project-URL: repository, https://github.com/rthalley/dnspython.git
|
|
@@ -17,42 +17,41 @@ Classifier: Operating System :: Microsoft :: Windows
|
|
|
17
17
|
Classifier: Operating System :: POSIX
|
|
18
18
|
Classifier: Programming Language :: Python
|
|
19
19
|
Classifier: Programming Language :: Python :: 3
|
|
20
|
-
Classifier: Programming Language :: Python :: 3.9
|
|
21
20
|
Classifier: Programming Language :: Python :: 3.10
|
|
22
21
|
Classifier: Programming Language :: Python :: 3.11
|
|
23
22
|
Classifier: Programming Language :: Python :: 3.12
|
|
24
23
|
Classifier: Programming Language :: Python :: 3.13
|
|
25
24
|
Classifier: Topic :: Internet :: Name Service (DNS)
|
|
26
25
|
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
27
|
-
Requires-Python: >=3.
|
|
26
|
+
Requires-Python: >=3.10
|
|
28
27
|
Provides-Extra: dev
|
|
29
|
-
Requires-Dist: black>=
|
|
28
|
+
Requires-Dist: black>=25.1.0; extra == 'dev'
|
|
30
29
|
Requires-Dist: coverage>=7.0; extra == 'dev'
|
|
31
30
|
Requires-Dist: flake8>=7; extra == 'dev'
|
|
32
|
-
Requires-Dist: hypercorn>=0.
|
|
33
|
-
Requires-Dist: mypy>=1.
|
|
31
|
+
Requires-Dist: hypercorn>=0.17.0; extra == 'dev'
|
|
32
|
+
Requires-Dist: mypy>=1.17; extra == 'dev'
|
|
34
33
|
Requires-Dist: pylint>=3; extra == 'dev'
|
|
35
|
-
Requires-Dist: pytest-cov>=
|
|
36
|
-
Requires-Dist: pytest>=
|
|
37
|
-
Requires-Dist: quart-trio>=0.
|
|
38
|
-
Requires-Dist: sphinx-rtd-theme>=
|
|
39
|
-
Requires-Dist: sphinx>=
|
|
40
|
-
Requires-Dist: twine>=
|
|
41
|
-
Requires-Dist: wheel>=0.
|
|
34
|
+
Requires-Dist: pytest-cov>=6.2.0; extra == 'dev'
|
|
35
|
+
Requires-Dist: pytest>=8.4; extra == 'dev'
|
|
36
|
+
Requires-Dist: quart-trio>=0.12.0; extra == 'dev'
|
|
37
|
+
Requires-Dist: sphinx-rtd-theme>=3.0.0; extra == 'dev'
|
|
38
|
+
Requires-Dist: sphinx>=8.2.0; extra == 'dev'
|
|
39
|
+
Requires-Dist: twine>=6.1.0; extra == 'dev'
|
|
40
|
+
Requires-Dist: wheel>=0.45.0; extra == 'dev'
|
|
42
41
|
Provides-Extra: dnssec
|
|
43
|
-
Requires-Dist: cryptography>=
|
|
42
|
+
Requires-Dist: cryptography>=45; extra == 'dnssec'
|
|
44
43
|
Provides-Extra: doh
|
|
45
|
-
Requires-Dist: h2>=4.
|
|
44
|
+
Requires-Dist: h2>=4.2.0; extra == 'doh'
|
|
46
45
|
Requires-Dist: httpcore>=1.0.0; extra == 'doh'
|
|
47
|
-
Requires-Dist: httpx>=0.
|
|
46
|
+
Requires-Dist: httpx>=0.28.0; extra == 'doh'
|
|
48
47
|
Provides-Extra: doq
|
|
49
|
-
Requires-Dist: aioquic>=1.
|
|
48
|
+
Requires-Dist: aioquic>=1.2.0; extra == 'doq'
|
|
50
49
|
Provides-Extra: idna
|
|
51
|
-
Requires-Dist: idna>=3.
|
|
50
|
+
Requires-Dist: idna>=3.10; extra == 'idna'
|
|
52
51
|
Provides-Extra: trio
|
|
53
|
-
Requires-Dist: trio>=0.
|
|
52
|
+
Requires-Dist: trio>=0.30; extra == 'trio'
|
|
54
53
|
Provides-Extra: wmi
|
|
55
|
-
Requires-Dist: wmi>=1.5.1; extra == 'wmi'
|
|
54
|
+
Requires-Dist: wmi>=1.5.1; (platform_system == 'Windows') and extra == 'wmi'
|
|
56
55
|
Description-Content-Type: text/markdown
|
|
57
56
|
|
|
58
57
|
# dnspython
|
|
@@ -65,39 +64,41 @@ Description-Content-Type: text/markdown
|
|
|
65
64
|
|
|
66
65
|
## INTRODUCTION
|
|
67
66
|
|
|
68
|
-
dnspython is a DNS toolkit for Python. It supports almost all record types. It
|
|
69
|
-
can be used for queries, zone transfers, and dynamic updates. It supports
|
|
70
|
-
authenticated messages and EDNS0.
|
|
67
|
+
`dnspython` is a DNS toolkit for Python. It supports almost all record types. It
|
|
68
|
+
can be used for queries, zone transfers, and dynamic updates. It supports
|
|
69
|
+
TSIG-authenticated messages and EDNS0.
|
|
71
70
|
|
|
72
|
-
dnspython provides both high and low
|
|
73
|
-
perform queries for data of a given name, type, and class, and return an
|
|
74
|
-
set. The low
|
|
75
|
-
names, and records.
|
|
71
|
+
`dnspython` provides both high- and low-level access to DNS. The high-level
|
|
72
|
+
classes perform queries for data of a given name, type, and class, and return an
|
|
73
|
+
answer set. The low-level classes allow direct manipulation of DNS zones,
|
|
74
|
+
messages, names, and records.
|
|
76
75
|
|
|
77
|
-
To see a few of the ways dnspython can be used, look in the `examples/`
|
|
76
|
+
To see a few of the ways `dnspython` can be used, look in the `examples/`
|
|
78
77
|
directory.
|
|
79
78
|
|
|
80
|
-
dnspython is a utility to work with DNS, `/etc/hosts` is thus not used. For
|
|
79
|
+
`dnspython` is a utility to work with DNS, `/etc/hosts` is thus not used. For
|
|
81
80
|
simple forward DNS lookups, it's better to use `socket.getaddrinfo()` or
|
|
82
81
|
`socket.gethostbyname()`.
|
|
83
82
|
|
|
84
|
-
dnspython originated at Nominum where it was developed
|
|
85
|
-
|
|
83
|
+
`dnspython` originated at Nominum where it was developed to facilitate the
|
|
84
|
+
testing of DNS software.
|
|
86
85
|
|
|
87
86
|
## ABOUT THIS RELEASE
|
|
88
87
|
|
|
89
|
-
This is dnspython 2.
|
|
88
|
+
This is of `dnspython` 2.8.0.
|
|
90
89
|
Please read
|
|
91
90
|
[What's New](https://dnspython.readthedocs.io/en/stable/whatsnew.html) for
|
|
92
91
|
information about the changes in this release.
|
|
93
92
|
|
|
94
93
|
## INSTALLATION
|
|
95
94
|
|
|
96
|
-
* Many distributions have dnspython packaged for you, so you should
|
|
97
|
-
|
|
95
|
+
* Many distributions have dnspython packaged for you, so you should check there
|
|
96
|
+
first.
|
|
98
97
|
* To use a wheel downloaded from PyPi, run:
|
|
99
98
|
|
|
99
|
+
```
|
|
100
100
|
pip install dnspython
|
|
101
|
+
```
|
|
101
102
|
|
|
102
103
|
* To install from the source code, go into the top-level of the source code
|
|
103
104
|
and run:
|
|
@@ -108,11 +109,12 @@ information about the changes in this release.
|
|
|
108
109
|
pip install dist/*.whl
|
|
109
110
|
```
|
|
110
111
|
|
|
111
|
-
* To install the latest from the main branch, run
|
|
112
|
+
* To install the latest from the main branch, run
|
|
113
|
+
`pip install git+https://github.com/rthalley/dnspython.git`
|
|
112
114
|
|
|
113
|
-
|
|
115
|
+
`dnspython`'s default installation does not depend on any modules other than
|
|
114
116
|
those in the Python standard library. To use some features, additional modules
|
|
115
|
-
must be installed. For convenience, pip options are defined for the
|
|
117
|
+
must be installed. For convenience, `pip` options are defined for the
|
|
116
118
|
requirements.
|
|
117
119
|
|
|
118
120
|
If you want to use DNS-over-HTTPS, run
|
|
@@ -140,10 +142,8 @@ Note that you can install any combination of the above, e.g.:
|
|
|
140
142
|
|
|
141
143
|
### Notices
|
|
142
144
|
|
|
143
|
-
Python 2.x support ended with the release of 1.16.0.
|
|
144
|
-
|
|
145
|
-
Dnspython 2.7.x supports Python 3.9 and later. Future support is aligned with the
|
|
146
|
-
lifetime of the Python 3 versions.
|
|
145
|
+
Python 2.x support ended with the release of 1.16.0. `dnspython` supports Python 3.10
|
|
146
|
+
and later. Future support is aligned with the lifetime of the Python 3 versions.
|
|
147
147
|
|
|
148
148
|
Documentation has moved to
|
|
149
149
|
[dnspython.readthedocs.io](https://dnspython.readthedocs.io).
|
|
@@ -8,39 +8,41 @@
|
|
|
8
8
|
|
|
9
9
|
## INTRODUCTION
|
|
10
10
|
|
|
11
|
-
dnspython is a DNS toolkit for Python. It supports almost all record types. It
|
|
12
|
-
can be used for queries, zone transfers, and dynamic updates. It supports
|
|
13
|
-
authenticated messages and EDNS0.
|
|
11
|
+
`dnspython` is a DNS toolkit for Python. It supports almost all record types. It
|
|
12
|
+
can be used for queries, zone transfers, and dynamic updates. It supports
|
|
13
|
+
TSIG-authenticated messages and EDNS0.
|
|
14
14
|
|
|
15
|
-
dnspython provides both high and low
|
|
16
|
-
perform queries for data of a given name, type, and class, and return an
|
|
17
|
-
set. The low
|
|
18
|
-
names, and records.
|
|
15
|
+
`dnspython` provides both high- and low-level access to DNS. The high-level
|
|
16
|
+
classes perform queries for data of a given name, type, and class, and return an
|
|
17
|
+
answer set. The low-level classes allow direct manipulation of DNS zones,
|
|
18
|
+
messages, names, and records.
|
|
19
19
|
|
|
20
|
-
To see a few of the ways dnspython can be used, look in the `examples/`
|
|
20
|
+
To see a few of the ways `dnspython` can be used, look in the `examples/`
|
|
21
21
|
directory.
|
|
22
22
|
|
|
23
|
-
dnspython is a utility to work with DNS, `/etc/hosts` is thus not used. For
|
|
23
|
+
`dnspython` is a utility to work with DNS, `/etc/hosts` is thus not used. For
|
|
24
24
|
simple forward DNS lookups, it's better to use `socket.getaddrinfo()` or
|
|
25
25
|
`socket.gethostbyname()`.
|
|
26
26
|
|
|
27
|
-
dnspython originated at Nominum where it was developed
|
|
28
|
-
|
|
27
|
+
`dnspython` originated at Nominum where it was developed to facilitate the
|
|
28
|
+
testing of DNS software.
|
|
29
29
|
|
|
30
30
|
## ABOUT THIS RELEASE
|
|
31
31
|
|
|
32
|
-
This is dnspython 2.
|
|
32
|
+
This is of `dnspython` 2.8.0.
|
|
33
33
|
Please read
|
|
34
34
|
[What's New](https://dnspython.readthedocs.io/en/stable/whatsnew.html) for
|
|
35
35
|
information about the changes in this release.
|
|
36
36
|
|
|
37
37
|
## INSTALLATION
|
|
38
38
|
|
|
39
|
-
* Many distributions have dnspython packaged for you, so you should
|
|
40
|
-
|
|
39
|
+
* Many distributions have dnspython packaged for you, so you should check there
|
|
40
|
+
first.
|
|
41
41
|
* To use a wheel downloaded from PyPi, run:
|
|
42
42
|
|
|
43
|
+
```
|
|
43
44
|
pip install dnspython
|
|
45
|
+
```
|
|
44
46
|
|
|
45
47
|
* To install from the source code, go into the top-level of the source code
|
|
46
48
|
and run:
|
|
@@ -51,11 +53,12 @@ information about the changes in this release.
|
|
|
51
53
|
pip install dist/*.whl
|
|
52
54
|
```
|
|
53
55
|
|
|
54
|
-
* To install the latest from the main branch, run
|
|
56
|
+
* To install the latest from the main branch, run
|
|
57
|
+
`pip install git+https://github.com/rthalley/dnspython.git`
|
|
55
58
|
|
|
56
|
-
|
|
59
|
+
`dnspython`'s default installation does not depend on any modules other than
|
|
57
60
|
those in the Python standard library. To use some features, additional modules
|
|
58
|
-
must be installed. For convenience, pip options are defined for the
|
|
61
|
+
must be installed. For convenience, `pip` options are defined for the
|
|
59
62
|
requirements.
|
|
60
63
|
|
|
61
64
|
If you want to use DNS-over-HTTPS, run
|
|
@@ -83,10 +86,8 @@ Note that you can install any combination of the above, e.g.:
|
|
|
83
86
|
|
|
84
87
|
### Notices
|
|
85
88
|
|
|
86
|
-
Python 2.x support ended with the release of 1.16.0.
|
|
87
|
-
|
|
88
|
-
Dnspython 2.7.x supports Python 3.9 and later. Future support is aligned with the
|
|
89
|
-
lifetime of the Python 3 versions.
|
|
89
|
+
Python 2.x support ended with the release of 1.16.0. `dnspython` supports Python 3.10
|
|
90
|
+
and later. Future support is aligned with the lifetime of the Python 3 versions.
|
|
90
91
|
|
|
91
92
|
Documentation has moved to
|
|
92
93
|
[dnspython.readthedocs.io](https://dnspython.readthedocs.io).
|
|
@@ -49,7 +49,8 @@ class _DatagramProtocol:
|
|
|
49
49
|
self.recvfrom.set_exception(exc)
|
|
50
50
|
|
|
51
51
|
def close(self):
|
|
52
|
-
self.transport
|
|
52
|
+
if self.transport is not None:
|
|
53
|
+
self.transport.close()
|
|
53
54
|
|
|
54
55
|
|
|
55
56
|
async def _maybe_wait_for(awaitable, timeout):
|
|
@@ -130,7 +131,7 @@ if dns._features.have("doh"):
|
|
|
130
131
|
import httpx
|
|
131
132
|
|
|
132
133
|
_CoreAsyncNetworkBackend = httpcore.AsyncNetworkBackend
|
|
133
|
-
_CoreAnyIOStream = httpcore._backends.anyio.AnyIOStream
|
|
134
|
+
_CoreAnyIOStream = httpcore._backends.anyio.AnyIOStream # pyright: ignore
|
|
134
135
|
|
|
135
136
|
from dns.query import _compute_times, _expiration_for_this_attempt, _remaining
|
|
136
137
|
|
|
@@ -147,7 +148,7 @@ if dns._features.have("doh"):
|
|
|
147
148
|
)
|
|
148
149
|
|
|
149
150
|
async def connect_tcp(
|
|
150
|
-
self, host, port, timeout, local_address, socket_options=None
|
|
151
|
+
self, host, port, timeout=None, local_address=None, socket_options=None
|
|
151
152
|
): # pylint: disable=signature-differs
|
|
152
153
|
addresses = []
|
|
153
154
|
_, expiration = _compute_times(timeout)
|
|
@@ -180,7 +181,7 @@ if dns._features.have("doh"):
|
|
|
180
181
|
raise httpcore.ConnectError
|
|
181
182
|
|
|
182
183
|
async def connect_unix_socket(
|
|
183
|
-
self, path, timeout, socket_options=None
|
|
184
|
+
self, path, timeout=None, socket_options=None
|
|
184
185
|
): # pylint: disable=signature-differs
|
|
185
186
|
raise NotImplementedError
|
|
186
187
|
|
|
@@ -233,7 +234,7 @@ class Backend(dns._asyncbackend.Backend):
|
|
|
233
234
|
# proper fix for [#637].
|
|
234
235
|
source = (dns.inet.any_for_af(af), 0)
|
|
235
236
|
transport, protocol = await loop.create_datagram_endpoint(
|
|
236
|
-
_DatagramProtocol,
|
|
237
|
+
_DatagramProtocol, # pyright: ignore
|
|
237
238
|
source,
|
|
238
239
|
family=af,
|
|
239
240
|
proto=proto,
|
|
@@ -85,11 +85,11 @@ def force(feature: str, enabled: bool) -> None:
|
|
|
85
85
|
|
|
86
86
|
_requirements: Dict[str, List[str]] = {
|
|
87
87
|
### BEGIN generated requirements
|
|
88
|
-
"dnssec": ["cryptography>=
|
|
89
|
-
"doh": ["httpcore>=1.0.0", "httpx>=0.
|
|
90
|
-
"doq": ["aioquic>=1.
|
|
91
|
-
"idna": ["idna>=3.
|
|
92
|
-
"trio": ["trio>=0.
|
|
88
|
+
"dnssec": ["cryptography>=45"],
|
|
89
|
+
"doh": ["httpcore>=1.0.0", "httpx>=0.28.0", "h2>=4.2.0"],
|
|
90
|
+
"doq": ["aioquic>=1.2.0"],
|
|
91
|
+
"idna": ["idna>=3.10"],
|
|
92
|
+
"trio": ["trio>=0.30"],
|
|
93
93
|
"wmi": ["wmi>=1.5.1"],
|
|
94
94
|
### END generated requirements
|
|
95
95
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import enum
|
|
2
|
+
from typing import Any
|
|
3
|
+
|
|
4
|
+
CERT_NONE = 0
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
class TLSVersion(enum.IntEnum):
|
|
8
|
+
TLSv1_2 = 12
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
class WantReadException(Exception):
|
|
12
|
+
pass
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
class WantWriteException(Exception):
|
|
16
|
+
pass
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
class SSLWantReadError(Exception):
|
|
20
|
+
pass
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
class SSLWantWriteError(Exception):
|
|
24
|
+
pass
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class SSLContext:
|
|
28
|
+
def __init__(self) -> None:
|
|
29
|
+
self.minimum_version: Any = TLSVersion.TLSv1_2
|
|
30
|
+
self.check_hostname: bool = False
|
|
31
|
+
self.verify_mode: int = CERT_NONE
|
|
32
|
+
|
|
33
|
+
def wrap_socket(self, *args, **kwargs) -> "SSLSocket": # type: ignore
|
|
34
|
+
raise Exception("no ssl support") # pylint: disable=broad-exception-raised
|
|
35
|
+
|
|
36
|
+
def set_alpn_protocols(self, *args, **kwargs): # type: ignore
|
|
37
|
+
raise Exception("no ssl support") # pylint: disable=broad-exception-raised
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
class SSLSocket:
|
|
41
|
+
def pending(self) -> bool:
|
|
42
|
+
raise Exception("no ssl support") # pylint: disable=broad-exception-raised
|
|
43
|
+
|
|
44
|
+
def do_handshake(self) -> None:
|
|
45
|
+
raise Exception("no ssl support") # pylint: disable=broad-exception-raised
|
|
46
|
+
|
|
47
|
+
def settimeout(self, value: Any) -> None:
|
|
48
|
+
pass
|
|
49
|
+
|
|
50
|
+
def getpeercert(self) -> Any:
|
|
51
|
+
raise Exception("no ssl support") # pylint: disable=broad-exception-raised
|
|
52
|
+
|
|
53
|
+
def __enter__(self):
|
|
54
|
+
return self
|
|
55
|
+
|
|
56
|
+
def __exit__(self, exc_type, exc_val, exc_tb):
|
|
57
|
+
return False
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
def create_default_context(*args, **kwargs) -> SSLContext: # type: ignore
|
|
61
|
+
raise Exception("no ssl support") # pylint: disable=broad-exception-raised
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# Copyright (C) Dnspython Contributors, see LICENSE for text of ISC license
|
|
2
|
+
|
|
3
|
+
import os
|
|
4
|
+
from typing import Tuple
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
def convert_verify_to_cafile_and_capath(
|
|
8
|
+
verify: bool | str,
|
|
9
|
+
) -> Tuple[str | None, str | None]:
|
|
10
|
+
cafile: str | None = None
|
|
11
|
+
capath: str | None = None
|
|
12
|
+
if isinstance(verify, str):
|
|
13
|
+
if os.path.isfile(verify):
|
|
14
|
+
cafile = verify
|
|
15
|
+
elif os.path.isdir(verify):
|
|
16
|
+
capath = verify
|
|
17
|
+
else:
|
|
18
|
+
raise ValueError("invalid verify string")
|
|
19
|
+
return cafile, capath
|
|
@@ -121,7 +121,7 @@ if dns._features.have("doh"):
|
|
|
121
121
|
self._family = family
|
|
122
122
|
|
|
123
123
|
async def connect_tcp(
|
|
124
|
-
self, host, port, timeout, local_address, socket_options=None
|
|
124
|
+
self, host, port, timeout=None, local_address=None, socket_options=None
|
|
125
125
|
): # pylint: disable=signature-differs
|
|
126
126
|
addresses = []
|
|
127
127
|
_, expiration = _compute_times(timeout)
|
|
@@ -151,13 +151,14 @@ if dns._features.have("doh"):
|
|
|
151
151
|
sock = await Backend().make_socket(
|
|
152
152
|
af, socket.SOCK_STREAM, 0, source, destination, timeout
|
|
153
153
|
)
|
|
154
|
+
assert isinstance(sock, StreamSocket)
|
|
154
155
|
return _CoreTrioStream(sock.stream)
|
|
155
156
|
except Exception:
|
|
156
157
|
continue
|
|
157
158
|
raise httpcore.ConnectError
|
|
158
159
|
|
|
159
160
|
async def connect_unix_socket(
|
|
160
|
-
self, path, timeout, socket_options=None
|
|
161
|
+
self, path, timeout=None, socket_options=None
|
|
161
162
|
): # pylint: disable=signature-differs
|
|
162
163
|
raise NotImplementedError
|
|
163
164
|
|
|
@@ -211,6 +212,7 @@ class Backend(dns._asyncbackend.Backend):
|
|
|
211
212
|
if socktype == socket.SOCK_STREAM or destination is not None:
|
|
212
213
|
connected = False
|
|
213
214
|
with _maybe_timeout(timeout):
|
|
215
|
+
assert destination is not None
|
|
214
216
|
await s.connect(_lltuple(destination, af))
|
|
215
217
|
connected = True
|
|
216
218
|
if not connected:
|