Re: [Mixmaster-devel] [ mixmaster-Bugs-597688 ] bug in remailer-stats
Brought to you by:
weaselp
From: Len S. <ra...@ab...> - 2002-08-25 04:12:00
|
There was a typo in the patch that prevented it from compiling. Fixed patch: Index: stats.c =================================================================== RCS file: /cvsroot/mixmaster/Mix/Src/stats.c,v retrieving revision 1.11 diff -u -r1.11 stats.c --- stats.c 22 Aug 2002 05:25:22 -0000 1.11 +++ stats.c 22 Aug 2002 17:43:09 -0000 @@ -58,7 +58,8 @@ long updated = 0, havestats = 0; int msgd[3][24], msg[3][80]; int poold[2][24], pool[2][80]; - int i, num, type; + int i, num, type, assigned, daysum; + char c; idlog_t idbuf; now = (time(NULL) / (60 * 60) + 1) * 60 * 60; @@ -78,11 +79,14 @@ case '0': case '1': case '2': - sscanf(line, "%d %d %ld", &type, &num, &then); - if (now - then < 0) + c = '\0'; + assigned = sscanf(line, "%d %d %ld %c", &type, &num, &then, &c); + daysum = (assigned == 4 && c == 'd'); + + if (now - then < 0 || (daysum && today - then < 0)) break; /* keep memory consistent even if the time suddenly goes backwards :) */ - if (now - then < SECONDSPERDAY) + if (now - then < SECONDSPERDAY && !daysum) msgd[type][(now - then) / (60 * 60)] += num; else if (today - then < 80 * SECONDSPERDAY) msg[type][(today - then) / SECONDSPERDAY] += num; @@ -90,10 +94,13 @@ havestats = then; break; case 'p': - sscanf(line, "p %d %d %ld", &num, &i, &then); - if (now - then < 0) + c = '\0'; + assigned = sscanf(line, "p %d %d %ld %c", &num, &i, &then, &c); + daysum = (assigned == 4 && c == 'd'); + + if (now - then < 0 || (daysum && today - then < 0)) break; - if (now - then < SECONDSPERDAY) { + if (now - then < SECONDSPERDAY && !daysum) { poold[0][(now - then) / (60 * 60)] += num; poold[1][(now - then) / (60 * 60)] += i; } else if (today - then < 80 * SECONDSPERDAY) { @@ -145,10 +152,10 @@ for (i = 0; i < 80; i++) { for (type = 0; type < 3; type++) if (msg[type][i] > 0) - fprintf(s, "%d %d %ld\n", type, msg[type][i], + fprintf(s, "%d %d %ld d\n", type, msg[type][i], today - i * 24 * 60 * 60); if (pool[0][i] > 0) - fprintf(s, "p %d %d %ld\n", pool[0][i], pool[1][i], + fprintf(s, "p %d %d %ld d\n", pool[0][i], pool[1][i], today - i * 24 * 60 * 60); } unlock(s); |