X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=stest%2Fcommon.tcl;h=cd0780e417a9ad7839f32d570e5d0508114a2718;hb=564022994befb8f71b89ae015751b22c34ae3ee8;hp=5895568b9a32ef7fdc8f3d6bdbc2d8beddc10c85;hpb=fb6baee0615a82ae5d46ea747b699a125af57ba9;p=secnet.git diff --git a/stest/common.tcl b/stest/common.tcl index 5895568..cd0780e 100644 --- a/stest/common.tcl +++ b/stest/common.tcl @@ -19,6 +19,11 @@ set netlink(outside) { set ports(inside) {16913 16910} set ports(outside) 16900 +set defnet_v4 198.51.100 +set defnet_v6 2001:db8:ff00 +set defaddr_v4 ${defnet_v4}.1 +set defaddr_v6 ${defnet_v6}::1 + set extra(inside) { local-mobile True; mtu-target 1260; @@ -44,6 +49,7 @@ proc mkconf {location site} { global ports global extra global netlinkfh + global defaddr_v4 defaddr_v6 upvar #0 privkey($site) privkey set pipefp $tmp/$site.netlink foreach tr {t r} { @@ -83,7 +89,7 @@ exec cat append cfg "$delim udp { port $port; - address \"::1\", \"127.0.0.1\"; + address \"$defaddr_v6\", \"$defaddr_v4\"; buffer sysbuffer(4096); } " @@ -145,6 +151,8 @@ exec cat set f [open $sitesconf r] while {[gets $f l] >= 0} { regsub {\"[^\"]*test-example/pubkeys/} $l "\"$pubkeys/" l + regsub -all {\"\[127\.0\.0\.1\]\"} $l "\"\[$defaddr_v4\]\"" l + regsub -all {\"\[::1]\"} $l "\"\[$defaddr_v6\]\"" l set l [sitesconf_hook $l] append cfg $l "\n" } @@ -177,7 +185,7 @@ proc spawn-secnet {location site} { } set argl [list $secnet -dvnc $cf] set divertk SECNET_STEST_DIVERT_$site - puts -nonewline "spawn" + puts "spawn:" foreach k [array names env] { switch -glob $k { SECNET_STEST_DIVERT_* - @@ -186,19 +194,26 @@ proc spawn-secnet {location site} { *PRELOAD* { puts -nonewline " $k=$env($k)" } } } - puts " $argl" if {[info exists env($divertk)]} { switch -glob $env($divertk) { - i { + i - {i *} { + regsub {^i} $env($divertk) {} divert_prefix + puts "$divert_prefix $argl" puts -nonewline "run ^ command, hit return " flush stdout gets stdin set argl {} } 0 - "" { + puts " $argl" } - * { + /* - ./* { + puts " $argl" set argl [split $env($divertk)] + puts "... $argl" + } + * { + error "$divertk not understood" } } } @@ -350,6 +365,8 @@ proc udp-relay {data src sock args} { } proc adj-after {timeout args} { + upvar #0 env(SECNET_STEST_TIMEOUT_MUL) mul + if {[info exists mul]} { set timeout [expr {$timeout * $mul}] } eval after $timeout $args }