* are willing to talk about it? */
#define GEOIP_MIN_OBSERVATION_TIME (12*60*60)
-/** Return the lowest x such that x is at least <b>number</b>, and x modulo
- * <b>divisor</b> == 0. */
-static INLINE unsigned
-round_to_next_multiple_of(unsigned number, unsigned divisor)
-{
- number += divisor - 1;
- number -= number % divisor;
- return number;
-}
-
/** Return a newly allocated comma-separated string containing entries for all
* the countries from which we've seen enough clients connect. The entry
* format is cc=num where num is the number of IPs we've seen connecting from
if (exit_bytes_read[i] + exit_bytes_written[i] > 0 &&
(total_bytes / (exit_bytes_read[i] + exit_bytes_written[i])
< EXIT_STATS_THRESHOLD)) {
- uint64_t num = b[i];
- num += EXIT_STATS_ROUND_UP_BYTES - 1;
- num /= EXIT_STATS_ROUND_UP_BYTES;
- num *= EXIT_STATS_ROUND_UP_BYTES;
+ uint64_t num = round_to_next_multiple_of(b[i],
+ EXIT_STATS_ROUND_UP_BYTES);
num /= 1024;
if (fprintf(out, "%s%d="U64_FORMAT,
comma++ ? "," : "", i,
other_bytes += b[i];
}
}
- other_bytes += EXIT_STATS_ROUND_UP_BYTES - 1;
- other_bytes /= EXIT_STATS_ROUND_UP_BYTES;
- other_bytes *= EXIT_STATS_ROUND_UP_BYTES;
+ other_bytes = round_to_next_multiple_of(other_bytes,
+ EXIT_STATS_ROUND_UP_BYTES);
other_bytes /= 1024;
if (fprintf(out, "%sother="U64_FORMAT"\n",
comma ? "," : "", other_bytes)<0)
if (exit_bytes_read[i] + exit_bytes_written[i] > 0 &&
(total_bytes / (exit_bytes_read[i] + exit_bytes_written[i])
< EXIT_STATS_THRESHOLD)) {
- uint32_t num = exit_streams[i];
- num += EXIT_STATS_ROUND_UP_STREAMS - 1;
- num /= EXIT_STATS_ROUND_UP_STREAMS;
- num *= EXIT_STATS_ROUND_UP_STREAMS;
+ uint32_t num = round_to_next_multiple_of(exit_streams[i],
+ EXIT_STATS_ROUND_UP_STREAMS);
if (fprintf(out, "%s%d=%d",
comma++ ? "," : "", i, num)<0)
goto done;
other_streams += exit_streams[i];
}
}
- other_streams += EXIT_STATS_ROUND_UP_STREAMS - 1;
- other_streams /= EXIT_STATS_ROUND_UP_STREAMS;
- other_streams *= EXIT_STATS_ROUND_UP_STREAMS;
+ other_streams = round_to_next_multiple_of(other_streams,
+ EXIT_STATS_ROUND_UP_STREAMS);
if (fprintf(out, "%sother=%d\n",
comma ? "," : "", other_streams)<0)
goto done;