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

This commit is contained in:
Nick Mathewson 2017-05-22 11:57:03 -04:00
commit d9b1471303
2 changed files with 14 additions and 0 deletions

View File

@ -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 {

View File

@ -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