diff options
| author | Bob Halley <halley@play-bow.org> | 2016-02-21 15:23:28 -0800 |
|---|---|---|
| committer | Bob Halley <halley@play-bow.org> | 2016-02-21 15:23:28 -0800 |
| commit | 25d7b99117779b385e00fbb128252952c0fd1dd8 (patch) | |
| tree | 83bd7b1f2a54c27b35cb13f827d563783cec6cac | |
| parent | 8d0fd8342089e66e199abe712ff22398bb7f736c (diff) | |
| download | dnspython-25d7b99117779b385e00fbb128252952c0fd1dd8.tar.gz | |
Set response_time to zero when exceptions occur early.
| -rw-r--r-- | dns/query.py | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/dns/query.py b/dns/query.py index 1d3954d..26533b9 100644 --- a/dns/query.py +++ b/dns/query.py @@ -204,6 +204,7 @@ def udp(q, where, timeout=None, port=53, af=None, source=None, source_port=0, (af, destination, source) = _destination_and_source(af, where, port, source, source_port) s = socket.socket(af, socket.SOCK_DGRAM, 0) + begin_time = None try: expiration = _compute_expiration(timeout) s.setblocking(0) @@ -224,7 +225,10 @@ def udp(q, where, timeout=None, port=53, af=None, source=None, source_port=0, '%s instead of %s' % (from_address, destination)) finally: - response_time = time.time() - begin_time + if begin_time is None: + response_time = 0 + else: + response_time = time.time() - begin_time s.close() r = dns.message.from_wire(wire, keyring=q.keyring, request_mac=q.mac, one_rr_per_rrset=one_rr_per_rrset) @@ -301,6 +305,7 @@ def tcp(q, where, timeout=None, port=53, af=None, source=None, source_port=0, (af, destination, source) = _destination_and_source(af, where, port, source, source_port) s = socket.socket(af, socket.SOCK_STREAM, 0) + begin_time = None try: expiration = _compute_expiration(timeout) s.setblocking(0) @@ -320,7 +325,10 @@ def tcp(q, where, timeout=None, port=53, af=None, source=None, source_port=0, (l,) = struct.unpack("!H", ldata) wire = _net_read(s, l, expiration) finally: - response_time = time.time() - begin_time + if begin_time is None: + response_time = 0 + else: + response_time = time.time() - begin_time s.close() r = dns.message.from_wire(wire, keyring=q.keyring, request_mac=q.mac, one_rr_per_rrset=one_rr_per_rrset) |
