From: Bob Halley Date: Sun, 21 Feb 2016 23:23:28 +0000 (-0800) Subject: Set response_time to zero when exceptions occur early. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=25d7b99117779b385e00fbb128252952c0fd1dd8;p=thirdparty%2Fdnspython.git Set response_time to zero when exceptions occur early. --- diff --git a/dns/query.py b/dns/query.py index 1d3954da..26533b98 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)