mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-25 15:10:48 +01:00
Log a warning if we receive a disallowed compression method for an anonymous connection.
See: https://bugs.torproject.org/22305
This commit is contained in:
parent
9a50c73104
commit
9604980733
2 changed files with 14 additions and 0 deletions
|
@ -2356,6 +2356,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
|
||||||
* compression method that is not allowed for anonymous connections. */
|
* compression method that is not allowed for anonymous connections. */
|
||||||
if (anonymized_connection &&
|
if (anonymized_connection &&
|
||||||
! allowed_anonymous_connection_compression_method(compression)) {
|
! allowed_anonymous_connection_compression_method(compression)) {
|
||||||
|
warn_disallowed_anonymous_compression_method(compression);
|
||||||
rv = -1;
|
rv = -1;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
@ -2368,6 +2369,7 @@ connection_dir_client_reached_eof(dir_connection_t *conn)
|
||||||
* differently, try that. */
|
* differently, try that. */
|
||||||
if (anonymized_connection &&
|
if (anonymized_connection &&
|
||||||
! allowed_anonymous_connection_compression_method(guessed)) {
|
! allowed_anonymous_connection_compression_method(guessed)) {
|
||||||
|
warn_disallowed_anonymous_compression_method(guessed);
|
||||||
rv = -1;
|
rv = -1;
|
||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
@ -3887,6 +3889,17 @@ allowed_anonymous_connection_compression_method(compress_method_t method)
|
||||||
return 0;
|
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
|
/** Encodes the results of parsing a consensus request to figure out what
|
||||||
* consensus, and possibly what diffs, the user asked for. */
|
* consensus, and possibly what diffs, the user asked for. */
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|
|
@ -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 int directory_handle_command(dir_connection_t *conn);
|
||||||
STATIC char *accept_encoding_header(void);
|
STATIC char *accept_encoding_header(void);
|
||||||
STATIC int allowed_anonymous_connection_compression_method(compress_method_t);
|
STATIC int allowed_anonymous_connection_compression_method(compress_method_t);
|
||||||
|
STATIC void warn_disallowed_anonymous_compression_method(compress_method_t);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue