Revert "wmnet: simplify updateStats_dev() a bit"
This reverts commit 49944a01ae
.
Shame on me.
This commit is contained in:
parent
bd0d7d1f67
commit
c78465cae2
|
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue