From 7752023dc2761ee214d8166fbfff78557c6fc626 Mon Sep 17 00:00:00 2001 From: Drew Noel Date: Mon, 26 Aug 2024 16:38:44 -0400 Subject: [PATCH] Switch `connect_ex` result checks to use `errno` lookups (#289) * Switch connect_ex result checks to errno lookups * Return errno strings, clean up comment --- src/ssh_audit/dheat.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/ssh_audit/dheat.py b/src/ssh_audit/dheat.py index 87000402..757313ab 100644 --- a/src/ssh_audit/dheat.py +++ b/src/ssh_audit/dheat.py @@ -21,6 +21,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. """ +import errno import multiprocessing import os import queue @@ -442,10 +443,10 @@ def _close_socket(socket_dict: Dict[socket.socket, float], s: socket.socket) -> # out.d("Creating socket (%u of %u already exist)..." % (len(socket_dict), concurrent_sockets), write_now=True) ret = s.connect_ex((target_ip_address, aconf.port)) num_attempted_connections += 1 - if ret in [0, 115]: # Check if connection is successful or EINPROGRESS. + if ret in [0, errno.EINPROGRESS]: socket_dict[s] = now else: - out.d("connect_ex() returned: %d" % ret, write_now=True) + out.d("connect_ex() returned: %s (%d)" % (os.strerror(ret), ret), write_now=True) # out.d("Calling select() on %u sockets..." % len(socket_dict), write_now=True) socket_list: List[socket.socket] = [*socket_dict] # Get a list of sockets from the dictionary.