2019-08-26 11:44:52 +00:00
|
|
|
#!/bin/sh
|
|
|
|
|
2019-08-26 11:44:53 +00:00
|
|
|
. "${0%/*}/testlib.sh"
|
2019-08-26 11:44:52 +00:00
|
|
|
|
|
|
|
# Initialize one node
|
|
|
|
|
|
|
|
$tinc $c1 <<EOF
|
|
|
|
init foo
|
|
|
|
set DeviceType dummy
|
|
|
|
set Mode switch
|
|
|
|
set Broadcast no
|
|
|
|
set Address localhost
|
|
|
|
set Port 32758
|
|
|
|
EOF
|
|
|
|
|
|
|
|
# Generate an invitation offline and let another node join the VPN
|
|
|
|
|
|
|
|
invitation=`$tinc $c1 invite bar`
|
|
|
|
|
|
|
|
$tinc $c1 start $r1
|
|
|
|
|
|
|
|
$tinc $c2 join $invitation
|
|
|
|
|
|
|
|
# Test equivalence of host config files
|
|
|
|
|
|
|
|
cmp $d1/hosts/foo $d2/hosts/foo
|
|
|
|
test "`grep ^Ed25519PublicKey $d1/hosts/bar`" = "`grep ^Ed25519PublicKey $d2/hosts/bar`"
|
|
|
|
|
|
|
|
# Test Mode, Broadcast and ConnectTo statements
|
|
|
|
|
|
|
|
test `$tinc $c2 get Mode` = switch
|
|
|
|
test `$tinc $c2 get Broadcast` = no
|
|
|
|
test `$tinc $c2 get ConnectTo` = foo
|
|
|
|
|
|
|
|
# Check whether the new node can join the VPN
|
|
|
|
|
|
|
|
$tinc $c2 << EOF
|
|
|
|
set DeviceType dummy
|
|
|
|
set Port 0
|
|
|
|
start $r2
|
|
|
|
EOF
|
|
|
|
|
|
|
|
sleep 1
|
|
|
|
|
|
|
|
test `$tinc $c1 dump reachable nodes | wc -l` = 2
|
|
|
|
test `$tinc $c2 dump reachable nodes | wc -l` = 2
|
|
|
|
|
|
|
|
$tinc $c2 stop
|
|
|
|
$tinc $c1 stop
|