4 void start_bwclimon(void) {
7 // const char *ipaddr, *hostname;
9 nvp
= nv
= strdup(nvram_safe_get("bwm_client"));
15 eval("iptables", "-N", "traffic_in");
16 eval("iptables", "-N", "traffic_out");
17 eval("iptables", "-I", "FORWARD", "1", "-j", "traffic_in");
18 eval("iptables", "-I", "FORWARD", "2", "-j", "traffic_out");
20 // while ((b = strsep(&nvp, ">")) != NULL) {
23 ip.ad.dr.ess<hostname>other.ip.addr.ess<anotherhost>
24 currently, only the IP address is used
27 // if ((vstrsep(b, "<", &ipaddr, &hostname)) != 2) continue;
29 // eval("iptables", "-A", "traffic_in", "-d", (char *)ipaddr);
30 // eval("iptables", "-A", "traffic_out", "-s", (char *)ipaddr);
34 ip.ad.dr.ess,other.ip.addr.ess,another.ip.addr.ess
37 while ((b
= strsep(&nvp
, ",")) != NULL
) {
38 if (strlen(b
) > INET_ADDRSTRLEN
)
40 eval("iptables", "-A", "traffic_in", "-d", (char *)b
);
41 eval("iptables", "-A", "traffic_out", "-s", (char *)b
);
46 void stop_bwclimon(void) {
48 eval("iptables", "-D", "FORWARD", "-j", "traffic_in");
49 eval("iptables", "-D", "FORWARD", "-j", "traffic_out");
51 eval("iptables", "-F", "traffic_in");
52 eval("iptables", "-F", "traffic_out");
54 eval("iptables", "-X", "traffic_in");
55 eval("iptables", "-X", "traffic_out");