From 89011fc3ae531116410e9ad05c4e1a88c66e8a24 Mon Sep 17 00:00:00 2001 From: Vangie Du Date: Fri, 19 Apr 2024 22:10:29 +0800 Subject: [PATCH] Fix issue with homebrew-installed nc taking precedence in $PATH This commit addresses a problem where the nc command installed via homebrew was being used preferentially over the intended version due to its higher precedence in the $PATH environment variable. Adjustments have been made to ensure the script selects the correct nc executable, avoiding conflicts and ensuring consistent behavior across different setups. --- plugins/shell-proxy/ssh-proxy.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/plugins/shell-proxy/ssh-proxy.py b/plugins/shell-proxy/ssh-proxy.py index 4b692f9e4..6c5f2beca 100755 --- a/plugins/shell-proxy/ssh-proxy.py +++ b/plugins/shell-proxy/ssh-proxy.py @@ -21,8 +21,12 @@ if parsed.scheme not in proxy_protocols: raise TypeError('unsupported proxy protocol: "{}"'.format(parsed.scheme)) def make_argv(): - yield "nc" - if sys.platform in {'linux', 'cygwin'}: + if sys.platform == 'darwin': + # 'nc' in $PATH may be installed by homebrew, if without path + yield "/usr/bin/nc" + else: + yield "nc" + if sys.platform in {'linux', 'cygwin', 'darwin'}: # caveats: the built-in netcat of most linux distributions and cygwin support proxy type # caveats: macOS built-in netcat command not supported proxy-type yield "-X" # --proxy-type