From 94dbee316f63702c5097e376a8b4fe7f9e5dd3bf Mon Sep 17 00:00:00 2001 From: Brian Wellington Date: Wed, 20 May 2020 16:48:04 -0700 Subject: [PATCH] Simplify dns.query._connect(). --- dns/query.py | 19 ++++++------------- 1 file changed, 6 insertions(+), 13 deletions(-) diff --git a/dns/query.py b/dns/query.py index de5c300b..080a66dd 100644 --- a/dns/query.py +++ b/dns/query.py @@ -590,21 +590,14 @@ def receive_tcp(sock, expiration=None, one_rr_per_rrset=False, return (r, received_time) def _connect(s, address, expiration): - try: - s.connect(address) - except socket.error: - (ty, v) = sys.exc_info()[:2] - - if hasattr(v, 'errno'): - v_err = v.errno - else: - v_err = v[0] - if v_err not in [errno.EINPROGRESS, errno.EWOULDBLOCK, errno.EALREADY]: - raise v + err = s.connect_ex(address) + if err == 0: + return + if err in (errno.EINPROGRESS, errno.EWOULDBLOCK, errno.EALREADY): _wait_for_writable(s, expiration) err = s.getsockopt(socket.SOL_SOCKET, socket.SO_ERROR) - if err != 0: - raise OSError(err, os.strerror(err)) from None + if err != 0: + raise OSError(err, os.strerror(err)) def tcp(q, where, timeout=None, port=53, af=None, source=None, source_port=0, -- 2.47.3