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
1 changed files with 19 additions and 10 deletions

View File

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