chiark / gitweb /
test: Generate configs from pieces
[secnet.git] / test / invoke
1 #! /usr/bin/tclsh
2
3 package require Tclx
4
5 set netlink(inside) {
6     local-address "172.18.232.9";
7     secnet-address "172.18.232.10";
8     remote-networks "172.18.232.0/28";
9 }
10 set netlink(outside) {
11     local-address "172.18.232.1";
12     secnet-address "172.18.232.2";
13     remote-networks "172.18.232.0/28";
14 }
15
16 set ports(inside) {16913 16910}
17 set ports(outside) 16900
18
19 set extra(inside) {
20     local-mobile True;
21     mtu-target 1260;
22 }
23 set extra(outside) {}
24
25 proc mkconf {which} {
26     global netlink
27     global ports
28     global extra
29     set cfg "
30         netlink tun {
31             name \"netlink-tun\";
32         $netlink($which)
33             mtu 1400;
34             buffer sysbuffer(2048);
35             interface \"secnet-test-[string range $which 0 0]\";
36         };
37         comm
38 "
39     set delim {}
40     foreach port $ports($which) {
41         append cfg "$delim
42             udp {
43                 port $port;
44                 buffer sysbuffer(4096);
45             }
46         "
47         set delim ,
48     }
49     append cfg ";
50         local-name \"test-example/$which/$which\";
51         local-key rsa-private(\"test-example/$which.key\");
52 "
53     append cfg $extra($which)
54     append cfg "
55         include test-example/common.conf
56     "
57     return $cfg
58 }
59
60 proc spawn-secnet {which} {
61     upvar #0 pids($which) pid
62     set cf test/$which.conf
63     set ch [open $cf w]
64     puts $ch [mkconf $which]
65     close $ch
66     set argl [list ./secnet -dvnc $cf]
67     set pid [fork]
68     if {!$pid} {
69         execl really $argl
70     }
71 }
72
73 spawn-secnet inside
74 spawn-secnet outside