From 4ad2106f9a3fe8c62f37d4cc55f89e3ca4c17eee Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 11 Oct 2019 00:30:22 +0100 Subject: [PATCH] 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 --- .gitignore | 1 + test/invoke | 29 ++++++++++++++++++++++++----- 2 files changed, 25 insertions(+), 5 deletions(-) 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 } } -- 2.30.2