BadVPN – Blame information for rev 1

Subversion Repositories:
Rev:
Rev Author Line No. Line
1 office 1 #!/usr/bin/badvpn-ncd
2  
3 process main {
4 getargs() args;
5 value(args) args;
6  
7 num_different(args.length, "4") bad_args;
8 If (bad_args) {
9 println("Usage: add-port-forwarding <protocol> <port_start> <port_end> <dest_addr>");
10 exit("1");
11 };
12  
13 args->get("0") protocol;
14 args->get("1") port_start;
15 args->get("2") port_end;
16 args->get("3") dest_addr;
17  
18 var("0") exit_status;
19  
20 sys.request_client({"unix", "/run/ncd-control.socket"}) client;
21  
22 var({"add-port-forwarding", protocol, port_start, port_end, dest_addr}) request_data;
23  
24 client->request(request_data, "reply_handler", "finished_handler", {});
25 }
26  
27 template reply_handler {
28 value(_reply.data) reply_data;
29 reply_data->get("0") status;
30 reply_data->get("1") text;
31  
32 val_equal(status, "ok") is_ok;
33 If (is_ok) {
34 println(text);
35 } Else {
36 _caller.exit_status->set("1");
37 println("Error: ", text);
38 };
39 }
40  
41 template finished_handler {
42 exit(_caller.exit_status);
43 }