From 8367147e883583bba71cd660d1bae880a66eb27c Mon Sep 17 00:00:00 2001 From: Jeff Forcier Date: Mon, 16 Jan 2023 21:25:52 -0500 Subject: Nuke retry_on_signal, pointless on modern Py3 Additionally, other bits of code that retry EINTR can similarly just go away. --- paramiko/agent.py | 4 ++-- paramiko/client.py | 4 ++-- paramiko/packet.py | 11 ----------- paramiko/transport.py | 3 +-- paramiko/util.py | 11 ----------- 5 files changed, 5 insertions(+), 28 deletions(-) (limited to 'paramiko') diff --git a/paramiko/agent.py b/paramiko/agent.py index f2d57ea5..c1a07390 100644 --- a/paramiko/agent.py +++ b/paramiko/agent.py @@ -34,7 +34,7 @@ from paramiko.common import io_sleep, byte_chr from paramiko.ssh_exception import SSHException, AuthenticationException from paramiko.message import Message from paramiko.pkey import PKey -from paramiko.util import retry_on_signal, asbytes +from paramiko.util import asbytes cSSH2_AGENTC_REQUEST_IDENTITIES = byte_chr(11) SSH2_AGENT_IDENTITIES_ANSWER = 12 @@ -213,7 +213,7 @@ def get_agent_connection(): if ("SSH_AUTH_SOCK" in os.environ) and (sys.platform != "win32"): conn = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) try: - retry_on_signal(lambda: conn.connect(os.environ["SSH_AUTH_SOCK"])) + conn.connect(os.environ["SSH_AUTH_SOCK"]) return conn except: # probably a dangling env var: the ssh agent is gone diff --git a/paramiko/client.py b/paramiko/client.py index 2dd25e91..5667d7e7 100644 --- a/paramiko/client.py +++ b/paramiko/client.py @@ -42,7 +42,7 @@ from paramiko.ssh_exception import ( NoValidConnectionsError, ) from paramiko.transport import Transport -from paramiko.util import retry_on_signal, ClosingContextManager +from paramiko.util import ClosingContextManager class SSHClient(ClosingContextManager): @@ -354,7 +354,7 @@ class SSHClient(ClosingContextManager): sock.settimeout(timeout) except: pass - retry_on_signal(lambda: sock.connect(addr)) + sock.connect(addr) # Break out of the loop on success break except socket.error as e: diff --git a/paramiko/packet.py b/paramiko/packet.py index 9125301e..211bf946 100644 --- a/paramiko/packet.py +++ b/paramiko/packet.py @@ -312,9 +312,6 @@ class Packetizer: arg = first_arg(e) if arg == errno.EAGAIN: got_timeout = True - elif arg == errno.EINTR: - # syscall interrupted; try again - pass elif self.__closed: raise EOFError() else: @@ -340,9 +337,6 @@ class Packetizer: arg = first_arg(e) if arg == errno.EAGAIN: retry_write = True - elif arg == errno.EINTR: - # syscall interrupted; try again - retry_write = True else: n = -1 except ProxyCommandFailure: @@ -610,11 +604,6 @@ class Packetizer: break except socket.timeout: pass - except EnvironmentError as e: - if first_arg(e) == errno.EINTR: - pass - else: - raise if self.__closed: raise EOFError() now = time.time() diff --git a/paramiko/transport.py b/paramiko/transport.py index 6c14218c..2b6acd6e 100644 --- a/paramiko/transport.py +++ b/paramiko/transport.py @@ -112,7 +112,6 @@ from paramiko.ssh_exception import ( ProxyCommandFailure, ) from paramiko.util import ( - retry_on_signal, ClosingContextManager, clamp_value, b, @@ -436,7 +435,7 @@ class Transport(threading.Thread, ClosingContextManager): # addr = sockaddr sock = socket.socket(af, socket.SOCK_STREAM) try: - retry_on_signal(lambda: sock.connect((hostname, port))) + sock.connect((hostname, port)) except socket.error as e: reason = str(e) else: diff --git a/paramiko/util.py b/paramiko/util.py index f6125eb1..76941ff4 100644 --- a/paramiko/util.py +++ b/paramiko/util.py @@ -21,7 +21,6 @@ Useful functions used by the rest of paramiko. """ -import errno import sys import struct import traceback @@ -273,16 +272,6 @@ def get_logger(name): return logger -def retry_on_signal(function): - """Retries function until it doesn't raise an EINTR error""" - while True: - try: - return function() - except EnvironmentError as e: - if e.errno != errno.EINTR: - raise - - def constant_time_bytes_eq(a, b): if len(a) != len(b): return False -- cgit v1.2.1