Revert "wmnet: simplify updateStats_dev() a bit"

This reverts commit 49944a01ae.

Shame on me.
This commit is contained in:
Carlos R. Mafra 2019-01-12 22:18:19 +00:00
parent bd0d7d1f67
commit c78465cae2

View file

@ -316,25 +316,36 @@ int updateStats_ipchains(void) {
int updateStats_dev(void) { int updateStats_dev(void) {
FILE *dev; FILE *dev;
char *ptr;
unsigned int flag = 0;
static char interface[16];
rx = False; rx = False;
tx = False; tx = False;
dev = fopen("/proc/net/dev", "r");
if (!dev) { if ((dev = fopen("/proc/net/dev", "r")) == NULL) {
fprintf(stderr, "/proc/net/dev does not exist\n"); fprintf(stderr, "/proc/net/dev does not exist?\n"
"Perhaps we are not running Linux?\n");
exit(4); exit(4);
} }
/* the first two lines we can skip */ /* the first two lines we can skip */
fgets(buffer, 256, dev); fgets(buffer, 256, dev);
fgets(buffer, 256, dev); fgets(buffer, 256, dev);
while(fgets(buffer, 256, dev)) { /* IP Chain Rules for Linux kernel 2_1.x */
while(flag != (ACCOUNT_IN_FOUND|ACCOUNT_OUT_FOUND) && fgets(buffer, 256, dev)) {
if (strcmp(buffer, device) > 0){ sscanf(buffer, "%16s %llu %llu %*d %*d %*d %*d %*d %*d %llu %llu %*d %*d %*d %*d %*d %*d",
interface, &totalbytes_in, &totalpackets_in, &totalbytes_out, &totalpackets_out);
sscanf(buffer, "%*s %llu %llu %*d %*d %*d %*d %*d %*d %llu %llu %*d %*d %*d %*d %*d %*d", /* strip trailing colon */
&totalbytes_in, &totalpackets_in, &totalbytes_out, &totalpackets_out); ptr = interface;
while(*ptr != ':') ptr++;
*ptr = '\0';
if (!strcmp(interface, device)) {
flag = (ACCOUNT_IN_FOUND|ACCOUNT_OUT_FOUND);
if (totalpackets_in != lastpackets_in) { if (totalpackets_in != lastpackets_in) {
diffbytes_in += totalbytes_in - lastbytes_in; diffbytes_in += totalbytes_in - lastbytes_in;
@ -349,8 +360,6 @@ int updateStats_dev(void) {
lastbytes_out = totalbytes_out; lastbytes_out = totalbytes_out;
tx = True; tx = True;
} }
break;
} }
} }