Merge remote-tracking branch 'origin/maint-0.2.2' into release-0.2.2

This commit is contained in:
Nick Mathewson 2011-08-17 15:51:29 -04:00
commit e3adeb6200
18 changed files with 3311 additions and 2978 deletions

4
changes/bug3577 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes:
- Allow GETINFO fingerprint to return a fingerprint even when
we have not yet built a router descriptor. Fixes bug 3577;
bugfix on 0.2.0.1-alpha.

15
changes/bug3607 Normal file
View File

@ -0,0 +1,15 @@
o Minor bugfixes:
- Write several files in text mode, on OSes that distinguish text
mode from binary mode (namely, Windows). These files are:
buffer-stats, dirreq-stats, and entry-stats on relays that collect
those statistics; client_keys and hostname files for hidden
services that use authentication; and (in the tor-gencert utility)
newly generated identity and signing keys. Previously, we
wouldn't specify text mode or binary mode, leading to an assertion
failure. Fixes bug 3607. Bugfix on 0.2.1.1-alpha (when the
DirRecordUsageByCountry option which would have triggered the
assertion failure was added), although this assertion failure
would have occurred in tor-gencert on Windows in 0.2.0.1-alpha.

4
changes/bug3643 Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes:
- Selectively disable deprecation warnings on OS X because Lion started
deprecating the shipped copy of openssl. Fixes bug 3643.

7
changes/bug3732 Normal file
View File

@ -0,0 +1,7 @@
o Major bugfixes:
- Remove an extra pair of quotation marks around the error
message in control-port STATUS_GENERAL BUG events. Bugfix on
0.1.2.6-alpha; fixes bug 3732.

6
changes/bug3747 Normal file
View File

@ -0,0 +1,6 @@
o Major bugfixes:
- Write control ports to disk only after switching UID and
creating the data directory. This way, we don't fail when
starting up with a nonexistant DataDirectory and a
ControlPortWriteToFile setting based on that directory. Fixes
bug 3747; bugfix on Tor 0.2.2.26-beta.

4
changes/fmt_addr Normal file
View File

@ -0,0 +1,4 @@
o Minor bugfixes:
- When unable to format an address as a string, report its value
as "???" rather than reusing the last formatted address. Bugfix
on 0.2.1.5-alpha.

3
changes/geoip-august2011 Normal file
View File

@ -0,0 +1,3 @@
o Minor features:
- Update to the August 2 2011 Maxmind GeoLite Country database.

View File

@ -906,6 +906,15 @@ else
enable_gcc_warnings_advisory=no
fi
# OS X Lion started deprecating the system openssl. Let's just disable
# all deprecation warnings on OS X.
case "$host_os" in
darwin*)
CFLAGS="$CFLAGS -Wno-deprecated-declarations"
;;
esac
# Add some more warnings which we use in development but not in the
# released versions. (Some relevant gcc versions can't handle these.)
if test x$enable_gcc_warnings = xyes || test x$enable_gcc_warnings_advisory = xyes; then

View File

@ -495,7 +495,11 @@ box. By convention, we enter the version in the form "Tor:
0.2.2.23-alpha" (or whatever the version is), and we select the date as
the date in the ChangeLog.
11) Wait up to a day or two (for a development release), or until most
11) Forward-port the ChangeLog.
12) Update the topic in #tor to reflect the new version.
12) Wait up to a day or two (for a development release), or until most
packages are up (for a stable release), and mail the release blurb and
changelog to tor-talk or tor-announce.

View File

@ -958,8 +958,10 @@ fmt_addr(const tor_addr_t *addr)
{
static char buf[TOR_ADDR_BUF_LEN];
if (!addr) return "<null>";
tor_addr_to_str(buf, addr, sizeof(buf), 0);
return buf;
if (tor_addr_to_str(buf, addr, sizeof(buf), 0))
return buf;
else
return "???";
}
/** Convert the string in <b>src</b> to a tor_addr_t <b>addr</b>. The string

File diff suppressed because it is too large Load Diff

View File

@ -1034,6 +1034,9 @@ options_act_reversible(or_options_t *old_options, char **msg)
/* No need to roll back, since you can't change the value. */
}
/* Write control ports to disk as appropriate */
control_ports_write_to_file();
if (directory_caches_v2_dir_info(options)) {
size_t len = strlen(options->DataDirectory)+32;
char *fn = tor_malloc(len);

View File

@ -1061,9 +1061,6 @@ connection_create_listener(const struct sockaddr *listensockaddr,
"%s listening on port %u.",
conn_type_to_string(type), gotPort);
if (type == CONN_TYPE_CONTROL_LISTENER)
control_ports_write_to_file();
conn->state = LISTENER_STATE_READY;
if (start_reading) {
connection_start_reading(conn);

View File

@ -1394,14 +1394,14 @@ getinfo_helper_misc(control_connection_t *conn, const char *question,
} else if (!strcmp(question, "dir-usage")) {
*answer = directory_dump_request_log();
} else if (!strcmp(question, "fingerprint")) {
routerinfo_t *me = router_get_my_routerinfo();
if (!me) {
*errmsg = "No routerdesc known; am I really a server?";
crypto_pk_env_t *server_key;
if (!server_mode(get_options())) {
*errmsg = "Not running in server mode";
return -1;
}
server_key = get_server_identity_key();
*answer = tor_malloc(HEX_DIGEST_LEN+1);
base16_encode(*answer, HEX_DIGEST_LEN+1, me->cache_info.identity_digest,
DIGEST_LEN);
crypto_pk_get_fingerprint(server_key, *answer, 0);
}
return 0;
}
@ -3480,7 +3480,7 @@ control_event_logmsg(int severity, uint32_t domain, const char *msg)
severity <= LOG_NOTICE) {
char *esc = esc_for_log(msg);
++disable_log_messages;
control_event_general_status(severity, "BUG REASON=\"%s\"", esc);
control_event_general_status(severity, "BUG REASON=%s", esc);
--disable_log_messages;
tor_free(esc);
}

View File

@ -976,7 +976,7 @@ geoip_dirreq_stats_write(time_t now)
data_v2 = geoip_get_client_history(GEOIP_CLIENT_NETWORKSTATUS_V2);
data_v3 = geoip_get_client_history(GEOIP_CLIENT_NETWORKSTATUS);
format_iso_time(written, now);
out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND,
out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND | O_TEXT,
0600, &open_file);
if (!out)
goto done;
@ -1309,7 +1309,7 @@ geoip_entry_stats_write(time_t now)
filename = get_datadir_fname2("stats", "entry-stats");
data = geoip_get_client_history(GEOIP_CLIENT_CONNECT);
format_iso_time(written, now);
out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND,
out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND | O_TEXT,
0600, &open_file);
if (!out)
goto done;

View File

@ -635,13 +635,15 @@ rend_service_load_keys(void)
}
/* Prepare client_keys and hostname files. */
if (!(cfile = start_writing_to_stdio_file(cfname, OPEN_FLAGS_REPLACE,
if (!(cfile = start_writing_to_stdio_file(cfname,
OPEN_FLAGS_REPLACE | O_TEXT,
0600, &open_cfile))) {
log_warn(LD_CONFIG, "Could not open client_keys file %s",
escaped(cfname));
goto err;
}
if (!(hfile = start_writing_to_stdio_file(fname, OPEN_FLAGS_REPLACE,
if (!(hfile = start_writing_to_stdio_file(fname,
OPEN_FLAGS_REPLACE | O_TEXT,
0600, &open_hfile))) {
log_warn(LD_CONFIG, "Could not open hostname file %s", escaped(fname));
goto err;

View File

@ -2500,7 +2500,7 @@ rep_hist_buffer_stats_write(time_t now)
if (check_private_dir(statsdir, CPD_CREATE, get_options()->User) < 0)
goto done;
filename = get_datadir_fname2("stats", "buffer-stats");
out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND,
out = start_writing_to_stdio_file(filename, OPEN_FLAGS_APPEND | O_TEXT,
0600, &open_file);
if (!out)
goto done;

View File

@ -264,7 +264,7 @@ load_identity_key(void)
}
if (!(f = start_writing_to_stdio_file(identity_key_file,
OPEN_FLAGS_REPLACE, 0400,
OPEN_FLAGS_REPLACE | O_TEXT, 0400,
&open_file)))
return 1;
@ -349,7 +349,7 @@ generate_signing_key(void)
}
if (!(f = start_writing_to_stdio_file(signing_key_file,
OPEN_FLAGS_REPLACE, 0600,
OPEN_FLAGS_REPLACE | O_TEXT, 0600,
&open_file)))
return 1;