tor

The Tor anonymity network
git clone https://git.dasho.dev/tor.git
Log | Files | Refs | README | LICENSE

commit d9b14713033e263a8ae008eb6fad580f959bcce3
parent 281f06a094434269bf4d62041c5683c1265a436f
Author: Nick Mathewson <nickm@torproject.org>
Date:   Mon, 22 May 2017 11:57:03 -0400

Merge remote-tracking branch 'ahf/bugs/22305'

Diffstat:
Msrc/or/directory.c | 13+++++++++++++
Msrc/or/directory.h | 1+
2 files changed, 14 insertions(+), 0 deletions(-)

diff --git a/src/or/directory.c b/src/or/directory.c @@ -2356,6 +2356,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn) * compression method that is not allowed for anonymous connections. */ if (anonymized_connection && ! allowed_anonymous_connection_compression_method(compression)) { + warn_disallowed_anonymous_compression_method(compression); rv = -1; goto done; } @@ -2368,6 +2369,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn) * differently, try that. */ if (anonymized_connection && ! allowed_anonymous_connection_compression_method(guessed)) { + warn_disallowed_anonymous_compression_method(guessed); rv = -1; goto done; } @@ -3887,6 +3889,17 @@ allowed_anonymous_connection_compression_method(compress_method_t method) return 0; } +/** Log a warning when a remote server have send us a document using a + * compression method that is not allowed for anonymous directory requests. */ +STATIC void +warn_disallowed_anonymous_compression_method(compress_method_t method) +{ + log_fn(LOG_PROTOCOL_WARN, LD_HTTP, + "Received a %s HTTP response, which is not " + "allowed for anonymous directory requests.", + compression_method_get_human_name(method)); +} + /** Encodes the results of parsing a consensus request to figure out what * consensus, and possibly what diffs, the user asked for. */ typedef struct { diff --git a/src/or/directory.h b/src/or/directory.h @@ -164,6 +164,7 @@ STATIC int handle_get_hs_descriptor_v3(dir_connection_t *conn, STATIC int directory_handle_command(dir_connection_t *conn); STATIC char *accept_encoding_header(void); STATIC int allowed_anonymous_connection_compression_method(compress_method_t); +STATIC void warn_disallowed_anonymous_compression_method(compress_method_t); #endif