[openssh-commits] [openssh] 03/03: upstream: Simplify forward-control test.

git+noreply at mindrot.org git+noreply at mindrot.org
Wed Apr 20 15:37:40 AEST 2022


This is an automated email from the git hooks/post-receive script.

dtucker pushed a commit to branch master
in repository openssh.

commit 5f76286a126721fa005de6edf3d1c7a265555f19
Author: dtucker at openbsd.org <dtucker at openbsd.org>
Date:   Wed Apr 20 05:24:13 2022 +0000

    upstream: Simplify forward-control test.
    
    Since we no longer need to support SSH1 we don't need to run shell
    commands on the other end of the connection and can use ssh -N instead.
    This also makes the test less racy.
    
    OpenBSD-Regress-ID: 32e94ce272820cc398f30b848b2b0f080d10302c
---
 regress/forward-control.sh | 34 +++++++++-------------------------
 1 file changed, 9 insertions(+), 25 deletions(-)

diff --git a/regress/forward-control.sh b/regress/forward-control.sh
index 02f7667a..3dcddbc7 100644
--- a/regress/forward-control.sh
+++ b/regress/forward-control.sh
@@ -1,4 +1,4 @@
-#	$OpenBSD: forward-control.sh,v 1.8 2021/05/07 09:23:40 dtucker Exp $
+#	$OpenBSD: forward-control.sh,v 1.9 2022/04/20 05:24:13 dtucker Exp $
 #	Placed in the Public Domain.
 
 tid="sshd control of local and remote forwarding"
@@ -6,19 +6,7 @@ tid="sshd control of local and remote forwarding"
 LFWD_PORT=3320
 RFWD_PORT=3321
 CTL=$OBJ/ctl-sock
-READY=$OBJ/ready
-
-wait_for_file_to_appear() {
-	_path=$1
-	_n=0
-	while test ! -f $_path ; do
-		test $_n -eq 1 && trace "waiting for $_path to appear"
-		_n=`expr $_n + 1`
-		test $_n -ge 20 && return 1
-		sleep 1
-	done
-	return 0
-}
+WAIT_SECONDS=20
 
 wait_for_process_to_exit() {
 	_pid=$1
@@ -26,7 +14,7 @@ wait_for_process_to_exit() {
 	while kill -0 $_pid 2>/dev/null ; do
 		test $_n -eq 1 && trace "waiting for $_pid to exit"
 		_n=`expr $_n + 1`
-		test $_n -ge 20 && return 1
+		test $_n -ge $WAIT_SECONDS && return 1
 		sleep 1
 	done
 	return 0
@@ -36,19 +24,18 @@ wait_for_process_to_exit() {
 check_lfwd() {
 	_expected=$1
 	_message=$2
-	rm -f $READY
 	${SSH} -F $OBJ/ssh_proxy \
 	    -L$LFWD_PORT:127.0.0.1:$PORT \
 	    -o ExitOnForwardFailure=yes \
-	    -n host exec sh -c \'"sleep 60 & echo \$! > $READY ; wait "\' \
-	    >/dev/null 2>&1 &
+	    -n -N host >/dev/null 2>&1 &
 	_sshpid=$!
-	wait_for_file_to_appear $READY || \
+	if test $? -ne 0; then
 		fatal "check_lfwd ssh fail: $_message"
+	fi
 	${SSH} -F $OBJ/ssh_config -p $LFWD_PORT \
 	    -oConnectionAttempts=10 host true >/dev/null 2>&1
 	_result=$?
-	kill $_sshpid `cat $READY` 2>/dev/null
+	kill $_sshpid 2>/dev/null
 	wait_for_process_to_exit $_sshpid
 	if test "x$_expected" = "xY" -a $_result -ne 0 ; then
 		fail "check_lfwd failed (expecting success): $_message"
@@ -65,20 +52,17 @@ check_lfwd() {
 check_rfwd() {
 	_expected=$1
 	_message=$2
-	rm -f $READY
 	${SSH} -F $OBJ/ssh_proxy \
 	    -R127.0.0.1:$RFWD_PORT:127.0.0.1:$PORT \
 	    -o ExitOnForwardFailure=yes \
-	    -n host exec sh -c \'"sleep 60 & echo \$! > $READY ; wait "\' \
-	    >/dev/null 2>&1 &
+	    -n -N host >/dev/null 2>&1 &
 	_sshpid=$!
-	wait_for_file_to_appear $READY
 	_result=$?
 	if test $_result -eq 0 ; then
 		${SSH} -F $OBJ/ssh_config -p $RFWD_PORT \
 		    -oConnectionAttempts=10 host true >/dev/null 2>&1
 		_result=$?
-		kill $_sshpid `cat $READY` 2>/dev/null
+		kill $_sshpid 2>/dev/null
 		wait_for_process_to_exit $_sshpid
 	fi
 	if test "x$_expected" = "xY" -a $_result -ne 0 ; then

-- 
To stop receiving notification emails like this one, please contact
djm at mindrot.org.


More information about the openssh-commits mailing list