From b6dc6a9620cf4c0d4bdacc749473203c18727eaa Mon Sep 17 00:00:00 2001 From: Bob Halley Date: Fri, 8 May 2020 06:43:50 -0700 Subject: [PATCH] remove send_https() as the send/receive split is too hard for HTTPS and it is not adding anything over https() --- dns/query.py | 18 +----------------- tests/test_doh.py | 12 ------------ 2 files changed, 1 insertion(+), 29 deletions(-) diff --git a/dns/query.py b/dns/query.py index 8e225705..017dcba1 100644 --- a/dns/query.py +++ b/dns/query.py @@ -228,22 +228,6 @@ def _destination_and_source(af, where, port, source, source_port, destination = None return (af, destination, source) -def send_https(session, what, lifetime=None): - """ - :param session: a :class:`requests.sessions.Session` - :param what: a :class:`requests.models.Request` or - :class:`requests.models.PreparedRequest`. - If it's a :class:`requests.models.Request`, it will be converted - into a :class:`requests.models.PreparedRequest`. - :param lifetime: timeout (in seconds) - :return: a :class:`requests.models.Response` object. - """ - if not have_doh: - raise NoDOH - if isinstance(what, requests.models.Request): - what = what.prepare() - return session.send(what, timeout=lifetime) - def https(q, where, timeout=None, port=443, af=None, source=None, source_port=0, one_rr_per_rrset=False, ignore_trailing=False, session=None, path='/dns-query', post=True, @@ -336,7 +320,7 @@ def https(q, where, timeout=None, port=443, af=None, source=None, source_port=0, }) response = session.post(url, headers=headers, data=wire, stream=True, timeout=timeout, - verify=verify) + verify=verify) else: wire = base64.urlsafe_b64encode(wire).decode('utf-8').strip("=") url += "?dns={}".format(wire) diff --git a/tests/test_doh.py b/tests/test_doh.py index 7e66d0ae..46096a72 100644 --- a/tests/test_doh.py +++ b/tests/test_doh.py @@ -72,18 +72,6 @@ class DNSOverHTTPSTestCase(unittest.TestCase): r = dns.query.https(q, valid_tls_url, session=self.session, bootstrap_address=ip) self.assertTrue(q.is_response(r)) - def test_send_https(self): - q = dns.message.make_query('example.com.', dns.rdatatype.A) - wire = q.to_wire() - query_string = '?dns={}'.format(base64.urlsafe_b64encode(wire).decode('utf-8').strip("=")) - request = requests.models.Request( - 'GET', - 'https://cloudflare-dns.com/dns-query{}'.format(query_string)) - r = request.prepare() - response = dns.query.send_https(self.session, r) - dns_resp = dns.message.from_wire(response.content) - self.assertTrue(q.is_response(dns_resp)) - def test_new_session(self): nameserver_url = random.choice(KNOWN_ANYCAST_DOH_RESOLVER_URLS) q = dns.message.make_query('example.com.', dns.rdatatype.A) -- 2.47.3