summaryrefslogtreecommitdiff
path: root/dns/query.py
diff options
context:
space:
mode:
authorkimbo <kimballleavitt@gmail.com>2019-12-30 16:22:51 -0700
committerkimbo <kimballleavitt@gmail.com>2019-12-30 16:22:51 -0700
commit27e24bf521aebb297b372f9ca6bb83a4ec9ed2f6 (patch)
tree1a502e1f244a976f831c0d287f824294a29451c8 /dns/query.py
parent6eb86db61e3e59ad782cb0733bf933ddbb61fb68 (diff)
downloaddnspython-27e24bf521aebb297b372f9ca6bb83a4ec9ed2f6.tar.gz
send_https() and test for it
Diffstat (limited to 'dns/query.py')
-rw-r--r--dns/query.py14
1 files changed, 14 insertions, 0 deletions
diff --git a/dns/query.py b/dns/query.py
index 8f4b1c2..c36248e 100644
--- a/dns/query.py
+++ b/dns/query.py
@@ -38,6 +38,7 @@ import dns.rcode
import dns.rdataclass
import dns.rdatatype
+import requests
from requests_toolbelt.adapters.source import SourceAddressAdapter
from requests_toolbelt.adapters.host_header_ssl import HostHeaderSSLAdapter
@@ -210,6 +211,19 @@ def _destination_and_source(af, where, port, source, source_port):
source = (source, source_port, 0, 0)
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 isinstance(what, requests.models.Request):
+ what = what.prepare()
+ return session.send(what, timeout=lifetime)
def https(q, where, session, timeout=None, port=443, path='/dns-query', post=True,
bootstrap_address=None, verify=True, source=None, source_port=0,