From: Ian Jackson Date: Thu, 10 Oct 2019 23:30:22 +0000 (+0100) Subject: test: Use stunt pipes and ipif shell script for netlink X-Git-Tag: v0.5.0~130 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;h=4ad2106f9a3fe8c62f37d4cc55f89e3ca4c17eee;p=secnet.git test: Use stunt pipes and ipif shell script for netlink The overall effect is that now secnet crashes as soon as invoke completes (ie, immediately) because there's no writer for the netlink pipe. This is good. Also we no longer need "really". Signed-off-by: Ian Jackson --- diff --git a/.gitignore b/.gitignore index b124db0..d597aa5 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ test-example/bogus-setup-request build-stamp test/*.conf +test/*.fake-userv diff --git a/test/invoke b/test/invoke index ef66106..69aa0da 100755 --- a/test/invoke +++ b/test/invoke @@ -26,9 +26,29 @@ proc mkconf {which} { global netlink global ports global extra + global netlinkfh + set pipefp test/$which.netlink + foreach tr {t r} { + file delete $pipefp.$tr + exec mkfifo -m600 $pipefp.$tr + set netlinkfh($which.$tr) [set fh [open $pipefp.$tr r+]] + fconfigure $fh -blocking 0 -buffering none -translation binary + } + fileevent $netlinkfh($which.t) readable [list netlink-readable $which] + set fakeuf test/$which.fake-userv + set fakeuh [open $fakeuf w 0755] + puts $fakeuh "#!/bin/sh +set -e +cat >$pipefp.t & +exec 3<>$pipefp.r +exec <$pipefp.r +exec 3<&- +exec cat +" set cfg " - netlink tun { - name \"netlink-tun\"; + netlink userv-ipif { + name \"netlink\"; + userv-path \"$fakeuf\"; $netlink($which) mtu 1400; buffer sysbuffer(2048); @@ -57,7 +77,6 @@ proc mkconf {which} { class "info","notice","warning","error","security","fatal"; }; system { - userid "secnet"; }; resolver adns { }; @@ -76,10 +95,10 @@ proc spawn-secnet {which} { set ch [open $cf w] puts $ch [mkconf $which] close $ch - set argl [list ./secnet -dvnc $cf] + set argl [list -dvnc $cf] set pid [fork] if {!$pid} { - execl really $argl + execl ./secnet $argl } }