3 void start_bwclimon(void) {
6 const char *ipaddr
, *hostname
;
8 nvp
= nv
= strdup(nvram_safe_get("bwm_client"));
14 eval("iptables", "-N", "traffic_in");
15 eval("iptables", "-N", "traffic_out");
16 eval("iptables", "-I", "FORWARD", "1", "-j", "traffic_in");
17 eval("iptables", "-I", "FORWARD", "2", "-j", "traffic_out");
19 while ((b
= strsep(&nvp
, ">")) != NULL
) {
21 ip.ad.dr.ess<hostname>other.ip.addr.ess<anotherhost>
22 currently, only the IP address is used
24 if ((vstrsep(b
, "<", &ipaddr
, &hostname
)) != 2) continue;
26 eval("iptables", "-A", "traffic_in", "-d", (char *)ipaddr
);
27 eval("iptables", "-A", "traffic_out", "-s", (char *)ipaddr
);
32 void stop_bwclimon(void) {
34 eval("iptables", "-D", "FORWARD", "-j", "traffic_in");
35 eval("iptables", "-D", "FORWARD", "-j", "traffic_out");
37 eval("iptables", "-F", "traffic_in");
38 eval("iptables", "-F", "traffic_out");
40 eval("iptables", "-X", "traffic_in");
41 eval("iptables", "-X", "traffic_out");