X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/e41b452fce323a3f84907a48a7d2680dbbfe1475..c3ee31b9820d8466267a73ab1ad652e043e31314:/hacks/ssh diff --git a/hacks/ssh b/hacks/ssh index 16b7578..cbec247 100755 --- a/hacks/ssh +++ b/hacks/ssh @@ -123,7 +123,7 @@ while :; do ;; ## These options are interesting to the master connection. - m,[aADLlRSwxXv]*) + m,[aADLlRSwxXv46]*) masteropts=("${masteropts[@]}" "-${o:0:1}$arg") ;; @@ -146,7 +146,7 @@ while :; do ## A bare word. Maybe it's the hostname, or the start of the command. *) - case ${host-t} in + case ${host-t}${host+nil} in t) host=$1 ;; *) break ;; esac @@ -173,7 +173,10 @@ case "$mode" in m) mkdir -p -m700 "$SSH_LOGDIR" logfile=$SSH_LOGDIR/${login+"$login@"}"$host"${port+":$port"}.log - if ! "$REAL_SSH" -Ocheck ${login+"$login@"}"$host" >/dev/null 2>&1; then + if ! "$REAL_SSH" -Ocheck \ + ${port+-p$port} ${login+"$login@"}"$host" \ + >/dev/null 2>&1 + then "$REAL_SSH" -MNf "${masteropts[@]}" "$host" \ /dev/null 2>$logfile fi