Loading ChangeLog +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,9 @@ Changes in version 0.2.2.7-alpha - 2009-??-?? - Do not segfault when writing buffer stats when we haven't observed a single circuit to report about. Found by Fabian Lanze. Bugfix on 0.2.2.1-alpha. - Fix statistics on client numbers by country as seen by bridges that were broken in 0.2.2.1-alpha. Also switch to reporting full 24-hour intervals instead of variable 12-to-48-hour intervals. o Removed features: - Remove the HSAuthorityRecordStats option that version 0 hidden Loading doc/spec/control-spec.txt +5 −5 Original line number Diff line number Diff line Loading @@ -1637,11 +1637,11 @@ TimeStarted is a quoted string indicating when the reported summary counts from (in GMT). The CountrySummary keyword has as its argument a comma-separated set of "countrycode=count" pairs. For example, 650-CLIENTS_SEEN TimeStarted="Thu Dec 25 23:50:43 EST 2008" 650 CountrySummary=us=16,de=8,uk=8 [XXX Matt Edman informs me that the time format above is wrong. -RD] The CountrySummary keyword has as its argument a comma-separated, possibly empty set of "countrycode=count" pairs. For example (without linebreak), 650-CLIENTS_SEEN TimeStarted="2008-12-25 23:50:43" CountrySummary=us=16,de=8,uk=8 4.1.15. New consensus networkstatus has arrived. Loading doc/spec/dir-spec.txt +29 −2 Original line number Diff line number Diff line Loading @@ -627,8 +627,8 @@ As documented in 2.1 above. See migration notes in section 2.2.1. "geoip-start" YYYY-MM-DD HH:MM:SS NL "geoip-client-origins" CC=N,CC=N,... NL ("geoip-start" YYYY-MM-DD HH:MM:SS NL) ("geoip-client-origins" CC=N,CC=N,... NL) Only generated by bridge routers (see blocking.pdf), and only when they have been configured with a geoip database. Loading @@ -641,6 +641,33 @@ "geoip-start" is the time at which we began collecting geoip statistics. "geoip-start" and "geoip-client-origins" have been replaced by "bridge-stats-end" and "bridge-stats-ips" in 0.2.2.4-alpha. The reason is that the measurement interval with "geoip-stats" as determined by subtracting "geoip-start" from "published" could have had a variable length, whereas the measurement interval in 0.2.2.4-alpha and later is set to be exactly 24 hours long. In order to clearly distinguish the new measurement intervals from the old ones, the new keywords have been introduced. "bridge-stats-end" YYYY-MM-DD HH:MM:SS (NSEC s) NL [At most once.] YYYY-MM-DD HH:MM:SS defines the end of the included measurement interval of length NSEC seconds (86400 seconds by default). A "bridge-stats-end" line, as well as any other "bridge-*" line, is only added when the relay has been running as a bridge for at least 24 hours. "bridge-ips" CC=N,CC=N,... NL [At most once.] List of mappings from two-letter country codes to the number of unique IP addresses that have connected from that country to the bridge and which are no known relays, rounded up to the nearest multiple of 8. "dirreq-stats-end" YYYY-MM-DD HH:MM:SS (NSEC s) NL [At most once.] Loading src/common/compat_libevent.c +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ /** A number representing a version of Libevent. This is a 4-byte number, with the first three bytes representing the major, minor, and patchlevel respectively of the the library. The fourth major, minor, and patchlevel respectively of the library. The fourth byte is unused. This is equivalent to the format of LIBEVENT_VERSION_NUMBER on Libevent Loading src/common/util.c +25 −2 Original line number Diff line number Diff line Loading @@ -682,6 +682,29 @@ find_whitespace_eos(const char *s, const char *eos) return s; } /** Return the first occurrence of <b>needle</b> in <b>haystack</b> that * occurs at the start of a line (that is, at the beginning of <b>haystack</b> * or immediately after a newline). Return NULL if no such string is found. */ const char * find_str_at_start_of_line(const char *haystack, const char *needle) { size_t needle_len = strlen(needle); do { if (!strncmp(haystack, needle, needle_len)) return haystack; haystack = strchr(haystack, '\n'); if (!haystack) return NULL; else ++haystack; } while (*haystack); return NULL; } /** Return true iff the 'len' bytes at 'mem' are all zero. */ int tor_mem_is_zero(const char *mem, size_t len) Loading Loading @@ -1214,7 +1237,7 @@ format_rfc1123_time(char *buf, time_t t) memcpy(buf+8, MONTH_NAMES[tm.tm_mon], 3); } /** Parse the the RFC1123 encoding of some time (in GMT) from <b>buf</b>, /** Parse the RFC1123 encoding of some time (in GMT) from <b>buf</b>, * and store the result in *<b>t</b>. * * Return 0 on success, -1 on failure. Loading Loading @@ -1755,7 +1778,7 @@ write_str_to_file(const char *fname, const char *str, int bin) } /** Represents a file that we're writing to, with support for atomic commit: * we can write into a a temporary file, and either remove the file on * we can write into a temporary file, and either remove the file on * failure, or replace the original file on success. */ struct open_file_t { char *tempname; /**< Name of the temporary file. */ Loading Loading
ChangeLog +3 −0 Original line number Diff line number Diff line Loading @@ -25,6 +25,9 @@ Changes in version 0.2.2.7-alpha - 2009-??-?? - Do not segfault when writing buffer stats when we haven't observed a single circuit to report about. Found by Fabian Lanze. Bugfix on 0.2.2.1-alpha. - Fix statistics on client numbers by country as seen by bridges that were broken in 0.2.2.1-alpha. Also switch to reporting full 24-hour intervals instead of variable 12-to-48-hour intervals. o Removed features: - Remove the HSAuthorityRecordStats option that version 0 hidden Loading
doc/spec/control-spec.txt +5 −5 Original line number Diff line number Diff line Loading @@ -1637,11 +1637,11 @@ TimeStarted is a quoted string indicating when the reported summary counts from (in GMT). The CountrySummary keyword has as its argument a comma-separated set of "countrycode=count" pairs. For example, 650-CLIENTS_SEEN TimeStarted="Thu Dec 25 23:50:43 EST 2008" 650 CountrySummary=us=16,de=8,uk=8 [XXX Matt Edman informs me that the time format above is wrong. -RD] The CountrySummary keyword has as its argument a comma-separated, possibly empty set of "countrycode=count" pairs. For example (without linebreak), 650-CLIENTS_SEEN TimeStarted="2008-12-25 23:50:43" CountrySummary=us=16,de=8,uk=8 4.1.15. New consensus networkstatus has arrived. Loading
doc/spec/dir-spec.txt +29 −2 Original line number Diff line number Diff line Loading @@ -627,8 +627,8 @@ As documented in 2.1 above. See migration notes in section 2.2.1. "geoip-start" YYYY-MM-DD HH:MM:SS NL "geoip-client-origins" CC=N,CC=N,... NL ("geoip-start" YYYY-MM-DD HH:MM:SS NL) ("geoip-client-origins" CC=N,CC=N,... NL) Only generated by bridge routers (see blocking.pdf), and only when they have been configured with a geoip database. Loading @@ -641,6 +641,33 @@ "geoip-start" is the time at which we began collecting geoip statistics. "geoip-start" and "geoip-client-origins" have been replaced by "bridge-stats-end" and "bridge-stats-ips" in 0.2.2.4-alpha. The reason is that the measurement interval with "geoip-stats" as determined by subtracting "geoip-start" from "published" could have had a variable length, whereas the measurement interval in 0.2.2.4-alpha and later is set to be exactly 24 hours long. In order to clearly distinguish the new measurement intervals from the old ones, the new keywords have been introduced. "bridge-stats-end" YYYY-MM-DD HH:MM:SS (NSEC s) NL [At most once.] YYYY-MM-DD HH:MM:SS defines the end of the included measurement interval of length NSEC seconds (86400 seconds by default). A "bridge-stats-end" line, as well as any other "bridge-*" line, is only added when the relay has been running as a bridge for at least 24 hours. "bridge-ips" CC=N,CC=N,... NL [At most once.] List of mappings from two-letter country codes to the number of unique IP addresses that have connected from that country to the bridge and which are no known relays, rounded up to the nearest multiple of 8. "dirreq-stats-end" YYYY-MM-DD HH:MM:SS (NSEC s) NL [At most once.] Loading
src/common/compat_libevent.c +1 −1 Original line number Diff line number Diff line Loading @@ -26,7 +26,7 @@ /** A number representing a version of Libevent. This is a 4-byte number, with the first three bytes representing the major, minor, and patchlevel respectively of the the library. The fourth major, minor, and patchlevel respectively of the library. The fourth byte is unused. This is equivalent to the format of LIBEVENT_VERSION_NUMBER on Libevent Loading
src/common/util.c +25 −2 Original line number Diff line number Diff line Loading @@ -682,6 +682,29 @@ find_whitespace_eos(const char *s, const char *eos) return s; } /** Return the first occurrence of <b>needle</b> in <b>haystack</b> that * occurs at the start of a line (that is, at the beginning of <b>haystack</b> * or immediately after a newline). Return NULL if no such string is found. */ const char * find_str_at_start_of_line(const char *haystack, const char *needle) { size_t needle_len = strlen(needle); do { if (!strncmp(haystack, needle, needle_len)) return haystack; haystack = strchr(haystack, '\n'); if (!haystack) return NULL; else ++haystack; } while (*haystack); return NULL; } /** Return true iff the 'len' bytes at 'mem' are all zero. */ int tor_mem_is_zero(const char *mem, size_t len) Loading Loading @@ -1214,7 +1237,7 @@ format_rfc1123_time(char *buf, time_t t) memcpy(buf+8, MONTH_NAMES[tm.tm_mon], 3); } /** Parse the the RFC1123 encoding of some time (in GMT) from <b>buf</b>, /** Parse the RFC1123 encoding of some time (in GMT) from <b>buf</b>, * and store the result in *<b>t</b>. * * Return 0 on success, -1 on failure. Loading Loading @@ -1755,7 +1778,7 @@ write_str_to_file(const char *fname, const char *str, int bin) } /** Represents a file that we're writing to, with support for atomic commit: * we can write into a a temporary file, and either remove the file on * we can write into a temporary file, and either remove the file on * failure, or replace the original file on success. */ struct open_file_t { char *tempname; /**< Name of the temporary file. */ Loading