local-key rsa-private(\"$builddir/test-example/$site.key\");
"
append cfg $extra($site)
- append cfg {
+ append cfg "
log logfile {
- filename "/dev/tty";
- class "info","notice","warning","error","security","fatal";
+ prefix \"$site\";
+ class \"debug\",\"info\",\"notice\",\"warning\",\"error\",\"security\",\"fatal\";
};
+ "
+ append cfg {
system {
};
resolver adns {
global tmp
global builddir
global netlinkfh
+ global env
upvar #0 pids($site) pid
set cf $tmp/$site.conf
set ch [open $cf w]
puts $ch [mkconf $location $site]
close $ch
set argl [list $builddir/secnet -dvnc $cf]
- set pid [fork]
- if {!$pid} {
- execl [lindex $argl 0] [lrange $argl 1 end]
+ set divertk SECNET_STEST_DIVERT_$site
+ puts -nonewline "spawn"
+ foreach k [array names env] {
+ switch -glob $k {
+ SECNET_STEST_DIVERT_* -
+ SECNET_TEST_BUILDDIR { }
+ *SECNET* -
+ *PRELOAD* { puts -nonewline " $k=$env($k)" }
+ }
+ }
+ puts " $argl"
+ if {[info exists env($divertk)]} {
+ switch -glob $env($divertk) {
+ i {
+ puts -nonewline "run ^ command, hit return "
+ flush stdout
+ gets stdin
+ set argl {}
+ }
+ 0 - "" {
+ }
+ * {
+ set argl [split $env($divertk)]
+ }
+ }
+ }
+ if {[llength $argl]} {
+ set pid [fork]
+ if {!$pid} {
+ execl [lindex $argl 0] [lrange $argl 1 end]
+ }
}
puts -nonewline $netlinkfh($site.t) [hbytes h2raw c0]
}
set socktmp $tmp/s
exec mkdir -p -m700 $socktmp
-regsub {^(?!/)} $socktmp {./} socktmp ;# dgram-socket wants ./ or /
+regsub {^(?!/|\./)} $socktmp {./} socktmp ;# dgram-socket wants ./ or /
proc prefix_preload {lib} { prefix_some_path LD_PRELOAD $lib }