From 5613968d57cb07cc5a66e97c58bd39c22b86a50a Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Wed, 3 Apr 2019 14:30:56 -0400 Subject: [PATCH 1/2] Improve logging for 28614. When we fixed 28614, our answer was "if we failed to load the consensus on windows and it had a CRLF, retry it." But we logged the failure at "warn", and we only logged the retry at "info". Now we log the retry at "notice", with more useful information. Fixes bug 30004. --- changes/bug28614_better_logging | 6 ++++++ src/feature/nodelist/networkstatus.c | 7 +++++-- 2 files changed, 11 insertions(+), 2 deletions(-) create mode 100644 changes/bug28614_better_logging diff --git a/changes/bug28614_better_logging b/changes/bug28614_better_logging new file mode 100644 index 0000000000..26d19c3c11 --- /dev/null +++ b/changes/bug28614_better_logging @@ -0,0 +1,6 @@ + o Minor bugfixes (logging): + - On Windows, when errors cause us to reload a consensus from disk, tell + the user that we are retrying at log level "notice". Previously we only + logged this information at "info", which was confusing because the + errors themselves were logged at "warning". Improves previous fix for + 28614. Fixes bug 30004; bugfix on 0.4.0.2-alpha. diff --git a/src/feature/nodelist/networkstatus.c b/src/feature/nodelist/networkstatus.c index 023115978c..a988f700f3 100644 --- a/src/feature/nodelist/networkstatus.c +++ b/src/feature/nodelist/networkstatus.c @@ -1761,8 +1761,11 @@ reload_consensus_from_file(const char *fname, flavor, flags, source_dir); #ifdef _WIN32 if (rv < 0 && tor_memstr(map->data, map->size, "\r\n")) { - log_info(LD_GENERAL, "Found CRLF in consensus file %s; falling back to " - "read_file_to_string.", escaped(fname)); + log_notice(LD_GENERAL, "Looks like the above failures are probably " + "because of a CRLF in consensus file %s; falling back to " + "read_file_to_string. Nothing to worry about: this file " + "was probably saved by an earlier version of Tor.", + escaped(fname)); char *content = read_file_to_str(fname, RFTS_IGNORE_MISSING, NULL); rv = networkstatus_set_current_consensus(content, strlen(content), flavor, flags, source_dir); From 61e6b217c5c83bc49e888f594f931c00c3e9b971 Mon Sep 17 00:00:00 2001 From: rl1987 Date: Mon, 25 Mar 2019 15:40:46 +0200 Subject: [PATCH 2/2] manpage: Clarify that Tor does stream isolation between *Port listeners by default cherry-pick of tor-github/pr/841 to maint-0.4.0. --- changes/doc29121 | 3 +++ doc/tor.1.txt | 14 +++++++++++--- 2 files changed, 14 insertions(+), 3 deletions(-) create mode 100644 changes/doc29121 diff --git a/changes/doc29121 b/changes/doc29121 new file mode 100644 index 0000000000..dd31cc9c70 --- /dev/null +++ b/changes/doc29121 @@ -0,0 +1,3 @@ + o Documentation: + - Clarify that Tor performs stream isolation between *Port listeners by + default. Resolves issue 29121. diff --git a/doc/tor.1.txt b/doc/tor.1.txt index ea9942a28d..c2df7687fe 100644 --- a/doc/tor.1.txt +++ b/doc/tor.1.txt @@ -1230,6 +1230,8 @@ The following options are useful only for clients (that is, if information to anybody watching your network, and allow anybody to use your computer as an open proxy. + + + If multiple entries of this option are present in your configuration + file, Tor will perform stream isolation between listeners by default. The _isolation flags_ arguments give Tor rules for which streams received on this SocksPort are allowed to share circuits with one another. Recognized isolation flags are: @@ -1472,14 +1474,18 @@ The following options are useful only for clients (that is, if protocol instead of SOCKS. Set this to 0 if you don't want to allow "HTTP CONNECT" connections. Set the port to "auto" to have Tor pick a port for you. This directive can be - specified multiple times to bind to multiple addresses/ports. See + specified multiple times to bind to multiple addresses/ports. If multiple + entries of this option are present in your configuration file, Tor will + perform stream isolation between listeners by default. See SOCKSPort for an explanation of isolation flags. (Default: 0) [[TransPort]] **TransPort** \['address':]__port__|**auto** [_isolation flags_]:: Open this port to listen for transparent proxy connections. Set this to 0 if you don't want to allow transparent proxy connections. Set the port to "auto" to have Tor pick a port for you. This directive can be - specified multiple times to bind to multiple addresses/ports. See + specified multiple times to bind to multiple addresses/ports. If multiple + entries of this option are present in your configuration file, Tor will + perform stream isolation between listeners by default. See SOCKSPort for an explanation of isolation flags. + + TransPort requires OS support for transparent proxies, such as BSDs' pf or @@ -1516,7 +1522,9 @@ The following options are useful only for clients (that is, if included in old versions of FreeBSD, etc) using the NATD protocol. Use 0 if you don't want to allow NATD connections. Set the port to "auto" to have Tor pick a port for you. This directive can be - specified multiple times to bind to multiple addresses/ports. See + specified multiple times to bind to multiple addresses/ports. If multiple + entries of this option are present in your configuration file, Tor will + perform stream isolation between listeners by default. See SocksPort for an explanation of isolation flags. + + This option is only for people who cannot use TransPort. (Default: 0)