]> andersk Git - openssh.git/blob - regress/forwarding.sh
- djm@cvs.openbsd.org 2005/05/24 04:10:54
[openssh.git] / regress / forwarding.sh
1 #       $OpenBSD: forwarding.sh,v 1.5 2005/03/10 10:20:39 dtucker Exp $
2 #       Placed in the Public Domain.
3
4 tid="local and remote forwarding"
5 DATA=/bin/ls${EXEEXT}
6
7 start_sshd
8
9 base=33
10 last=$PORT
11 fwd=""
12 for j in 0 1 2; do
13         for i in 0 1 2; do
14                 a=$base$j$i
15                 b=`expr $a + 50`
16                 c=$last
17                 # fwd chain: $a -> $b -> $c
18                 fwd="$fwd -L$a:127.0.0.1:$b -R$b:127.0.0.1:$c"
19                 last=$a
20         done
21 done
22 for p in 1 2; do
23         q=`expr 3 - $p`
24         trace "start forwarding, fork to background"
25         ${SSH} -$p -F $OBJ/ssh_config -f $fwd somehost sleep 10
26
27         trace "transfer over forwarded channels and check result"
28         ${SSH} -$q -F $OBJ/ssh_config -p$last -o 'ConnectionAttempts=4' \
29                 somehost cat $DATA > $OBJ/ls.copy
30         test -f $OBJ/ls.copy                    || fail "failed copy $DATA"
31         cmp $DATA $OBJ/ls.copy                  || fail "corrupted copy of $DATA"
32
33         sleep 10
34 done
35
36 for p in 1 2; do
37         trace "simple clear forwarding proto $p"
38         ${SSH} -$p -F $OBJ/ssh_config -oClearAllForwardings=yes somehost true
39
40         trace "clear local forward proto $p"
41         ${SSH} -$p -f -F $OBJ/ssh_config -L ${base}01:127.0.0.1:$PORT \
42             -oClearAllForwardings=yes somehost sleep 10
43         if [ $? != 0 ]; then
44                 fail "connection failed with cleared local forwarding"
45         else
46                 # this one should fail
47                 ${SSH} -$p -F $OBJ/ssh_config -p ${base}01 true \
48                      2>${TEST_SSH_LOGFILE} && \
49                         fail "local forwarding not cleared"
50         fi
51         sleep 10
52         
53         trace "clear remote forward proto $p"
54         ${SSH} -$p -f -F $OBJ/ssh_config -R ${base}01:127.0.0.1:$PORT \
55             -oClearAllForwardings=yes somehost sleep 10
56         if [ $? != 0 ]; then
57                 fail "connection failed with cleared remote forwarding"
58         else
59                 # this one should fail
60                 ${SSH} -$p -F $OBJ/ssh_config -p ${base}01 true \
61                      2>${TEST_SSH_LOGFILE} && \
62                         fail "remote forwarding not cleared"
63         fi
64         sleep 10
65 done
This page took 0.568291 seconds and 5 git commands to generate.