badvpn/ncd/examples/router/add-port-forwarding
2013-10-13 21:02:10 +00:00

44 lines
1011 B
Plaintext

#!/usr/bin/badvpn-ncd
process main {
getargs() args;
value(args) args;
num_different(args.length, "4") bad_args;
If (bad_args) {
println("Usage: add-port-forwarding <protocol> <port_start> <port_end> <dest_addr>");
exit("1");
};
args->get("0") protocol;
args->get("1") port_start;
args->get("2") port_end;
args->get("3") dest_addr;
var("0") exit_status;
sys.request_client({"unix", "/run/ncd-control.socket"}) client;
var({"add-port-forwarding", protocol, port_start, port_end, dest_addr}) request_data;
client->request(request_data, "reply_handler", "finished_handler", {});
}
template reply_handler {
value(_reply.data) reply_data;
reply_data->get("0") status;
reply_data->get("1") text;
val_equal(status, "ok") is_ok;
If (is_ok) {
println(text);
} Else {
_caller.exit_status->set("1");
println("Error: ", text);
};
}
template finished_handler {
exit(_caller.exit_status);
}