chiark / gitweb /
ef66106fc79841b9b6a4989398a6e6d08e295d72
[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         log logfile {
56             filename "/dev/tty";
57             class "info","notice","warning","error","security","fatal";
58         };
59         system {
60             userid "secnet";
61         };
62         resolver adns {
63         };
64         log-events "all";
65         random randomfile("/dev/urandom",no);
66         transform eax-serpent { }, serpent256-cbc { };
67         include test-example/sites.conf
68         sites map(site,vpn/test-example/all-sites);
69     }
70     return $cfg
71 }
72
73 proc spawn-secnet {which} {
74     upvar #0 pids($which) pid
75     set cf test/$which.conf
76     set ch [open $cf w]
77     puts $ch [mkconf $which]
78     close $ch
79     set argl [list ./secnet -dvnc $cf]
80     set pid [fork]
81     if {!$pid} {
82         execl really $argl
83     }
84 }
85
86 spawn-secnet inside
87 spawn-secnet outside