From: Nick Mathewson Date: Tue, 10 Jun 2008 19:51:48 +0000 (+0000) Subject: a couple more geoip bugfixes X-Git-Tag: tor-0.2.1.1-alpha~32 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=16b62a01e4d640212757e0f532bf6f87f0672a42;p=thirdparty%2Ftor.git a couple more geoip bugfixes svn:r15105 --- diff --git a/src/or/geoip.c b/src/or/geoip.c index fb9ae25939..3d4aac974f 100644 --- a/src/or/geoip.c +++ b/src/or/geoip.c @@ -291,6 +291,10 @@ geoip_note_client_seen(geoip_client_action_t action, while (current_request_period_starts + REQUEST_HIST_PERIOD < now) { if (!geoip_countries) geoip_countries = smartlist_create(); + if (!current_request_period_starts) { + current_request_period_starts = now; + break; + } SMARTLIST_FOREACH(geoip_countries, geoip_country_t *, c, { memmove(&c->n_v2_ns_requests[0], &c->n_v2_ns_requests[1], sizeof(uint32_t)*(REQUEST_HIST_LEN-1)); @@ -300,9 +304,9 @@ geoip_note_client_seen(geoip_client_action_t action, c->n_v3_ns_requests[REQUEST_HIST_LEN-1] = 0; }); current_request_period_starts += REQUEST_HIST_PERIOD; - if (n_old_request_periods < REQUEST_HIST_PERIOD-1) + if (n_old_request_periods < REQUEST_HIST_LEN-1) ++n_old_request_periods; - } + } /* We use the low 3 bits of the time to encode the action. Since we're * potentially remembering tons of clients, we don't want to make