Don't warn on http connection to my orport

Also remove a few other related warnings that could occur during the ssl
handshake. We do this because the relay operator can't do anything about
them, and they aren't their fault.
This commit is contained in:
Sebastian Hahn 2011-08-11 20:37:51 +02:00
parent cd44145c5b
commit f137ae896e
2 changed files with 22 additions and 0 deletions

6
changes/bug3700 Normal file
View File

@ -0,0 +1,6 @@
o Minor bugfixes:
- Get rid of a harmless warning that could happen on relays running
with bufferevents. The warning was caused by someone doing an http
request to a relay's orport. Also don't warn for a few related
non-errors. Fixes bug 3700; bugfix on 0.2.3.1-alpha.

View File

@ -273,6 +273,22 @@ tor_tls_log_one_error(tor_tls_t *tls, unsigned long err,
addr = tls ? tls->address : NULL; addr = tls ? tls->address : NULL;
/* Some errors are known-benign, meaning they are the fault of the other
* side of the connection. The caller doesn't know this, so override the
* priority for those cases. */
switch (ERR_GET_REASON(err)) {
case SSL_R_HTTP_REQUEST:
case SSL_R_HTTPS_PROXY_REQUEST:
case SSL_R_RECORD_LENGTH_MISMATCH:
case SSL_R_RECORD_TOO_LARGE:
case SSL_R_UNKNOWN_PROTOCOL:
case SSL_R_UNSUPPORTED_PROTOCOL:
severity = LOG_INFO;
break;
default:
break;
}
msg = (const char*)ERR_reason_error_string(err); msg = (const char*)ERR_reason_error_string(err);
lib = (const char*)ERR_lib_error_string(err); lib = (const char*)ERR_lib_error_string(err);
func = (const char*)ERR_func_error_string(err); func = (const char*)ERR_func_error_string(err);