r12074@catbus: nickm | 2007-03-04 15:11:43 -0500

Make all LD_BUG log messsages get prefixed with "Bug: ".  Remove manually-generated "Bug: "s from log-messages.  (Apparently, we remembered to add them about 40% of the time.)


svn:r9733
This commit is contained in:
Nick Mathewson 2007-03-04 20:11:46 +00:00
parent 654924dfdf
commit 7fcceb2c25
21 changed files with 65 additions and 56 deletions

View File

@ -3,6 +3,10 @@ Changes in version 0.2.0.1-alpha - 2007-??-??
- Make autoconf search for libevent and openssl consistently. - Make autoconf search for libevent and openssl consistently.
- Update deprecated macros in configure.in - Update deprecated macros in configure.in
o Minor features (logging):
- Always prepend "Bug: " to any log message about a bug.
Changes in version 0.1.2.10-rc - 2007-03-?? Changes in version 0.1.2.10-rc - 2007-03-??
o Major bugfixes (Windows): o Major bugfixes (Windows):
- Do not load the NT services library functions (which may not exist) - Do not load the NT services library functions (which may not exist)

View File

@ -424,7 +424,7 @@ Future version:
- when we hit a funny error from a dir request (eg 403 forbidden), - when we hit a funny error from a dir request (eg 403 forbidden),
but tor is working and happy otherwise, and we haven't seen many but tor is working and happy otherwise, and we haven't seen many
such errors recently, then don't warn about it. such errors recently, then don't warn about it.
- LD_BUG log messages could prepend "Bug: " automatically, so we don't o LD_BUG log messages could prepend "Bug: " automatically, so we don't
have to try to remember to. have to try to remember to.
- More consistent error checking in router_parse_entry_from_string(). - More consistent error checking in router_parse_entry_from_string().
I can say "banana" as my bandwidthcapacity, and it won't even squeak. I can say "banana" as my bandwidthcapacity, and it won't even squeak.

View File

@ -96,7 +96,7 @@ static void close_log(logfile_t *victim);
* <b>buf_len</b> character buffer in <b>buf</b>. * <b>buf_len</b> character buffer in <b>buf</b>.
*/ */
static INLINE size_t static INLINE size_t
_log_prefix(char *buf, size_t buf_len, int severity) _log_prefix(char *buf, size_t buf_len, int severity, uint32_t domain)
{ {
time_t t; time_t t;
struct timeval now; struct timeval now;
@ -110,7 +110,7 @@ _log_prefix(char *buf, size_t buf_len, int severity)
n = strftime(buf, buf_len, "%b %d %H:%M:%S", tor_localtime_r(&t, &tm)); n = strftime(buf, buf_len, "%b %d %H:%M:%S", tor_localtime_r(&t, &tm));
r = tor_snprintf(buf+n, buf_len-n, r = tor_snprintf(buf+n, buf_len-n,
".%.3ld [%s] ", ".%.3ld [%s] ",
(long)now.tv_usec / 1000, sev_to_string(severity)); (long)now.tv_usec / 1000, sev_to_string(severity));
if (r<0) if (r<0)
return buf_len-1; return buf_len-1;
else else
@ -144,7 +144,7 @@ log_tor_version(logfile_t *lf, int reset)
/* We are resetting, but we aren't at the start of the file; no /* We are resetting, but we aren't at the start of the file; no
* need to log again. */ * need to log again. */
return 0; return 0;
n = _log_prefix(buf, sizeof(buf), LOG_NOTICE); n = _log_prefix(buf, sizeof(buf), LOG_NOTICE, LD_GENERAL);
tor_snprintf(buf+n, sizeof(buf)-n, tor_snprintf(buf+n, sizeof(buf)-n,
"Tor %s opening %slog file.\n", VERSION, is_new?"new ":""); "Tor %s opening %slog file.\n", VERSION, is_new?"new ":"");
if (fputs(buf, lf->file) == EOF || if (fputs(buf, lf->file) == EOF ||
@ -170,7 +170,7 @@ format_msg(char *buf, size_t buf_len,
tor_assert(buf_len >= 2); /* prevent integer underflow */ tor_assert(buf_len >= 2); /* prevent integer underflow */
buf_len -= 2; /* subtract 2 characters so we have room for \n\0 */ buf_len -= 2; /* subtract 2 characters so we have room for \n\0 */
n = _log_prefix(buf, buf_len, severity); n = _log_prefix(buf, buf_len, severity, domain);
end_of_prefix = buf+n; end_of_prefix = buf+n;
if (funcname && should_log_function_name(domain, severity)) { if (funcname && should_log_function_name(domain, severity)) {
@ -181,6 +181,11 @@ format_msg(char *buf, size_t buf_len,
n += r; n += r;
} }
if (domain == LD_BUG && buf_len-n > 6) {
memcpy(buf+n, "Bug: ", 6);
n += 5;
}
r = tor_vsnprintf(buf+n,buf_len-n,format,ap); r = tor_vsnprintf(buf+n,buf_len-n,format,ap);
if (r < 0) { if (r < 0) {
/* The message was too long; overwrite the end of the buffer with /* The message was too long; overwrite the end of the buffer with

View File

@ -1242,7 +1242,7 @@ write_str_to_file(const char *fname, const char *str, int bin)
#ifdef MS_WINDOWS #ifdef MS_WINDOWS
if (!bin && strchr(str, '\r')) { if (!bin && strchr(str, '\r')) {
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: we're writing a text string that already contains a CR."); "We're writing a text string that already contains a CR.");
} }
#endif #endif
return write_bytes_to_file(fname, str, strlen(str), bin); return write_bytes_to_file(fname, str, strlen(str), bin);

View File

@ -73,7 +73,7 @@ get_unique_circ_id_by_conn(or_connection_t *conn)
tor_assert(conn); tor_assert(conn);
if (conn->circ_id_type == CIRC_ID_TYPE_NEITHER) { if (conn->circ_id_type == CIRC_ID_TYPE_NEITHER) {
log_warn(LD_BUG, "Bug: Trying to pick a circuit ID for a connection from " log_warn(LD_BUG, "Trying to pick a circuit ID for a connection from "
"a client with no identity."); "a client with no identity.");
return 0; return 0;
} }
@ -803,12 +803,12 @@ circuit_init_cpath_crypto(crypt_path_t *cpath, const char *key_data,
if (!(cpath->f_crypto = if (!(cpath->f_crypto =
crypto_create_init_cipher(key_data+(2*DIGEST_LEN),1))) { crypto_create_init_cipher(key_data+(2*DIGEST_LEN),1))) {
log_warn(LD_BUG,"Bug: forward cipher initialization failed."); log_warn(LD_BUG,"Forward cipher initialization failed.");
return -1; return -1;
} }
if (!(cpath->b_crypto = if (!(cpath->b_crypto =
crypto_create_init_cipher(key_data+(2*DIGEST_LEN)+CIPHER_KEY_LEN,0))) { crypto_create_init_cipher(key_data+(2*DIGEST_LEN)+CIPHER_KEY_LEN,0))) {
log_warn(LD_BUG,"Bug: backward cipher initialization failed."); log_warn(LD_BUG,"Backward cipher initialization failed.");
return -1; return -1;
} }
@ -1342,7 +1342,7 @@ choose_good_exit_server(uint8_t purpose, routerlist_t *dir,
NULL, need_uptime, need_capacity, 0, NULL, need_uptime, need_capacity, 0,
options->_AllowInvalid & ALLOW_INVALID_RENDEZVOUS, 0, 0); options->_AllowInvalid & ALLOW_INVALID_RENDEZVOUS, 0, 0);
} }
log_warn(LD_BUG,"Bug: unhandled purpose %d", purpose); log_warn(LD_BUG,"Unhandled purpose %d", purpose);
tor_fragile_assert(); tor_fragile_assert();
return NULL; return NULL;
} }

View File

@ -279,7 +279,7 @@ circuit_state_to_string(int state)
case CIRCUIT_STATE_OR_WAIT: return "connecting to server"; case CIRCUIT_STATE_OR_WAIT: return "connecting to server";
case CIRCUIT_STATE_OPEN: return "open"; case CIRCUIT_STATE_OPEN: return "open";
default: default:
log_warn(LD_BUG, "Bug: unknown circuit state %d", state); log_warn(LD_BUG, "Unknown circuit state %d", state);
tor_snprintf(buf, sizeof(buf), "unknown state [%d]", state); tor_snprintf(buf, sizeof(buf), "unknown state [%d]", state);
return buf; return buf;
} }

View File

@ -849,7 +849,7 @@ circuit_launch_by_extend_info(uint8_t purpose, int onehop_tunnel,
break; break;
default: default:
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: unexpected purpose %d when cannibalizing a circ.", "unexpected purpose %d when cannibalizing a circ.",
purpose); purpose);
tor_fragile_assert(); tor_fragile_assert();
return NULL; return NULL;

View File

@ -890,7 +890,7 @@ options_act(or_options_t *old_options)
for (cl = options->DirServers; cl; cl = cl->next) { for (cl = options->DirServers; cl; cl = cl->next) {
if (parse_dir_server_line(cl->value, 0)<0) { if (parse_dir_server_line(cl->value, 0)<0) {
log_err(LD_BUG, log_err(LD_BUG,
"Bug: Previously validated DirServer line could not be added!"); "Previously validated DirServer line could not be added!");
return -1; return -1;
} }
} }
@ -900,7 +900,7 @@ options_act(or_options_t *old_options)
if (running_tor && rend_config_services(options, 0)<0) { if (running_tor && rend_config_services(options, 0)<0) {
log_err(LD_BUG, log_err(LD_BUG,
"Bug: Previously validated hidden services line could not be added!"); "Previously validated hidden services line could not be added!");
return -1; return -1;
} }
@ -1561,7 +1561,7 @@ get_assigned_option(config_format_t *fmt, or_options_t *options,
default: default:
tor_free(result->key); tor_free(result->key);
tor_free(result); tor_free(result);
log_warn(LD_BUG,"Bug: unknown type %d for known key '%s'", log_warn(LD_BUG,"Unknown type %d for known key '%s'",
var->type, key); var->type, key);
return NULL; return NULL;
} }
@ -2106,7 +2106,7 @@ options_dup(config_format_t *fmt, or_options_t *old)
if (line) { if (line) {
char *msg = NULL; char *msg = NULL;
if (config_assign(fmt, newopts, line, 0, 0, &msg) < 0) { if (config_assign(fmt, newopts, line, 0, 0, &msg) < 0) {
log_err(LD_BUG, "Bug: config_get_assigned_option() generated " log_err(LD_BUG, "Config_get_assigned_option() generated "
"something we couldn't config_assign(): %s", msg); "something we couldn't config_assign(): %s", msg);
tor_free(msg); tor_free(msg);
tor_assert(0); tor_assert(0);

View File

@ -56,7 +56,7 @@ conn_type_to_string(int type)
case CONN_TYPE_CONTROL_LISTENER: return "Control listener"; case CONN_TYPE_CONTROL_LISTENER: return "Control listener";
case CONN_TYPE_CONTROL: return "Control"; case CONN_TYPE_CONTROL: return "Control";
default: default:
log_warn(LD_BUG, "Bug: unknown connection type %d", type); log_warn(LD_BUG, "unknown connection type %d", type);
tor_snprintf(buf, sizeof(buf), "unknown [%d]", type); tor_snprintf(buf, sizeof(buf), "unknown [%d]", type);
return buf; return buf;
} }
@ -142,7 +142,7 @@ conn_state_to_string(int type, int state)
break; break;
} }
log_warn(LD_BUG, "Bug: unknown connection state %d (type %d)", state, type); log_warn(LD_BUG, "unknown connection state %d (type %d)", state, type);
tor_snprintf(buf, sizeof(buf), tor_snprintf(buf, sizeof(buf),
"unknown state [%d] on unknown [%s] connection", "unknown state [%d] on unknown [%s] connection",
state, conn_type_to_string(type)); state, conn_type_to_string(type));
@ -408,7 +408,7 @@ connection_about_to_close_connection(connection_t *conn)
if (CONN_IS_EDGE(conn)) { if (CONN_IS_EDGE(conn)) {
if (!conn->edge_has_sent_end) { if (!conn->edge_has_sent_end) {
log_warn(LD_BUG, "Harmless bug: Edge connection (marked at %s:%d) " log_warn(LD_BUG, "(Harmless.) Edge connection (marked at %s:%d) "
"hasn't sent end yet?", "hasn't sent end yet?",
conn->marked_for_close_file, conn->marked_for_close); conn->marked_for_close_file, conn->marked_for_close);
tor_fragile_assert(); tor_fragile_assert();
@ -472,12 +472,12 @@ connection_about_to_close_connection(connection_t *conn)
if (edge_conn->socks_request->has_finished == 0) { if (edge_conn->socks_request->has_finished == 0) {
/* since conn gets removed right after this function finishes, /* since conn gets removed right after this function finishes,
* there's no point trying to send back a reply at this point. */ * there's no point trying to send back a reply at this point. */
log_warn(LD_BUG,"Bug: Closing stream (marked at %s:%d) without sending" log_warn(LD_BUG,"Closing stream (marked at %s:%d) without sending"
" back a socks reply.", " back a socks reply.",
conn->marked_for_close_file, conn->marked_for_close); conn->marked_for_close_file, conn->marked_for_close);
} }
if (!edge_conn->end_reason) { if (!edge_conn->end_reason) {
log_warn(LD_BUG,"Bug: Closing stream (marked at %s:%d) without having" log_warn(LD_BUG,"Closing stream (marked at %s:%d) without having"
" set end_reason.", " set end_reason.",
conn->marked_for_close_file, conn->marked_for_close); conn->marked_for_close_file, conn->marked_for_close);
} }
@ -516,7 +516,7 @@ connection_close_immediate(connection_t *conn)
{ {
assert_connection_ok(conn,0); assert_connection_ok(conn,0);
if (conn->s < 0) { if (conn->s < 0) {
log_err(LD_BUG,"Bug: Attempt to close already-closed connection."); log_err(LD_BUG,"Attempt to close already-closed connection.");
tor_fragile_assert(); tor_fragile_assert();
return; return;
} }
@ -1543,7 +1543,7 @@ connection_read_to_buf(connection_t *conn, int *max_to_read)
* believing that SSL bytes are the same as TCP bytes anyway. */ * believing that SSL bytes are the same as TCP bytes anyway. */
int r2 = read_to_buf_tls(or_conn->tls, pending, conn->inbuf); int r2 = read_to_buf_tls(or_conn->tls, pending, conn->inbuf);
if (r2<0) { if (r2<0) {
log_warn(LD_BUG, "Bug: apparently, reading pending bytes can fail."); log_warn(LD_BUG, "apparently, reading pending bytes can fail.");
return -1; return -1;
} else { } else {
result += r2; result += r2;
@ -1896,7 +1896,7 @@ _connection_write_to_buf_impl(const char *string, size_t len,
if (connection_handle_write(conn, 0) < 0) { if (connection_handle_write(conn, 0) < 0) {
if (!conn->marked_for_close) { if (!conn->marked_for_close) {
/* this connection is broken. remove it. */ /* this connection is broken. remove it. */
log_warn(LD_BUG, "Bug: unhandled error on write for " log_warn(LD_BUG, "unhandled error on write for "
"conn (type %d, fd %d); removing", "conn (type %d, fd %d); removing",
conn->type, conn->s); conn->type, conn->s);
tor_fragile_assert(); tor_fragile_assert();
@ -2253,7 +2253,7 @@ connection_process_inbuf(connection_t *conn, int package_partial)
case CONN_TYPE_CONTROL: case CONN_TYPE_CONTROL:
return connection_control_process_inbuf(TO_CONTROL_CONN(conn)); return connection_control_process_inbuf(TO_CONTROL_CONN(conn));
default: default:
log_err(LD_BUG,"Bug: got unexpected conn type %d.", conn->type); log_err(LD_BUG,"got unexpected conn type %d.", conn->type);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;
} }
@ -2300,7 +2300,7 @@ connection_finished_flushing(connection_t *conn)
case CONN_TYPE_CONTROL: case CONN_TYPE_CONTROL:
return connection_control_finished_flushing(TO_CONTROL_CONN(conn)); return connection_control_finished_flushing(TO_CONTROL_CONN(conn));
default: default:
log_err(LD_BUG,"Bug: got unexpected conn type %d.", conn->type); log_err(LD_BUG,"got unexpected conn type %d.", conn->type);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;
} }
@ -2325,7 +2325,7 @@ connection_finished_connecting(connection_t *conn)
case CONN_TYPE_DIR: case CONN_TYPE_DIR:
return connection_dir_finished_connecting(TO_DIR_CONN(conn)); return connection_dir_finished_connecting(TO_DIR_CONN(conn));
default: default:
log_err(LD_BUG,"Bug: got unexpected conn type %d.", conn->type); log_err(LD_BUG,"got unexpected conn type %d.", conn->type);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;
} }
@ -2350,7 +2350,7 @@ connection_reached_eof(connection_t *conn)
case CONN_TYPE_CONTROL: case CONN_TYPE_CONTROL:
return connection_control_reached_eof(TO_CONTROL_CONN(conn)); return connection_control_reached_eof(TO_CONTROL_CONN(conn));
default: default:
log_err(LD_BUG,"Bug: got unexpected conn type %d.", conn->type); log_err(LD_BUG,"got unexpected conn type %d.", conn->type);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;
} }

View File

@ -52,7 +52,7 @@ _connection_mark_unattached_ap(edge_connection_t *conn, int endreason,
if (!conn->socks_request->has_finished) { if (!conn->socks_request->has_finished) {
if (endreason & END_STREAM_REASON_FLAG_ALREADY_SOCKS_REPLIED) if (endreason & END_STREAM_REASON_FLAG_ALREADY_SOCKS_REPLIED)
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: stream (marked at %s:%d) sending two socks replies?", "stream (marked at %s:%d) sending two socks replies?",
file, line); file, line);
if (SOCKS_COMMAND_IS_CONNECT(conn->socks_request->command)) if (SOCKS_COMMAND_IS_CONNECT(conn->socks_request->command))
@ -138,7 +138,7 @@ connection_edge_process_inbuf(edge_connection_t *conn, int package_partial)
conn_state_to_string(conn->_base.type, conn->_base.state)); conn_state_to_string(conn->_base.type, conn->_base.state));
return 0; return 0;
} }
log_warn(LD_BUG,"Bug: Got unexpected state %d. Closing.",conn->_base.state); log_warn(LD_BUG,"Got unexpected state %d. Closing.",conn->_base.state);
tor_fragile_assert(); tor_fragile_assert();
connection_edge_end(conn, END_STREAM_REASON_INTERNAL, conn->cpath_layer); connection_edge_end(conn, END_STREAM_REASON_INTERNAL, conn->cpath_layer);
connection_mark_for_close(TO_CONN(conn)); connection_mark_for_close(TO_CONN(conn));
@ -190,7 +190,7 @@ connection_edge_end(edge_connection_t *conn, char reason,
circuit_t *circ; circuit_t *circ;
if (conn->_base.edge_has_sent_end) { if (conn->_base.edge_has_sent_end) {
log_warn(LD_BUG,"Harmless bug: Calling connection_edge_end (reason %d) " log_warn(LD_BUG,"(Harmless.) Calling connection_edge_end (reason %d) "
"on an already ended stream?", reason); "on an already ended stream?", reason);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;
@ -198,7 +198,7 @@ connection_edge_end(edge_connection_t *conn, char reason,
if (conn->_base.marked_for_close) { if (conn->_base.marked_for_close) {
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: called on conn that's already marked for close at %s:%d.", "called on conn that's already marked for close at %s:%d.",
conn->_base.marked_for_close_file, conn->_base.marked_for_close); conn->_base.marked_for_close_file, conn->_base.marked_for_close);
return 0; return 0;
} }
@ -269,7 +269,7 @@ connection_edge_finished_flushing(edge_connection_t *conn)
connection_stop_writing(TO_CONN(conn)); connection_stop_writing(TO_CONN(conn));
return 0; return 0;
default: default:
log_warn(LD_BUG,"BUG: called in unexpected state %d.",conn->_base.state); log_warn(LD_BUG, "Called in unexpected state %d.",conn->_base.state);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;
} }
@ -1384,7 +1384,7 @@ connection_ap_handshake_rewrite_and_attach(edge_connection_t *conn,
/* see if we already have it cached */ /* see if we already have it cached */
r = rend_cache_lookup_entry(conn->rend_query, -1, &entry); r = rend_cache_lookup_entry(conn->rend_query, -1, &entry);
if (r<0) { if (r<0) {
log_warn(LD_BUG,"Bug: Invalid service name '%s'", log_warn(LD_BUG,"Invalid service name '%s'",
safe_str(conn->rend_query)); safe_str(conn->rend_query));
connection_mark_unattached_ap(conn, END_STREAM_REASON_TORPROTOCOL); connection_mark_unattached_ap(conn, END_STREAM_REASON_TORPROTOCOL);
return -1; return -1;
@ -2038,7 +2038,7 @@ connection_ap_handshake_socks_reply(edge_connection_t *conn, char *reply,
endreason); endreason);
if (conn->socks_request->has_finished) { if (conn->socks_request->has_finished) {
log_warn(LD_BUG, "Harmless bug: duplicate calls to " log_warn(LD_BUG, "(Harmless.) duplicate calls to "
"connection_ap_handshake_socks_reply."); "connection_ap_handshake_socks_reply.");
return; return;
} }
@ -2390,7 +2390,7 @@ connection_exit_connect(edge_connection_t *edge_conn)
conn->state = EXIT_CONN_STATE_OPEN; conn->state = EXIT_CONN_STATE_OPEN;
if (connection_wants_to_flush(conn)) { if (connection_wants_to_flush(conn)) {
/* in case there are any queued data cells */ /* in case there are any queued data cells */
log_warn(LD_BUG,"Bug: newly connected conn had data waiting!"); log_warn(LD_BUG,"newly connected conn had data waiting!");
// connection_start_writing(conn); // connection_start_writing(conn);
} }
connection_watch_events(conn, EV_READ); connection_watch_events(conn, EV_READ);

View File

@ -37,7 +37,7 @@ connection_or_remove_from_identity_map(or_connection_t *conn)
tmp = digestmap_get(orconn_identity_map, conn->identity_digest); tmp = digestmap_get(orconn_identity_map, conn->identity_digest);
if (!tmp) { if (!tmp) {
if (!tor_digest_is_zero(conn->identity_digest)) { if (!tor_digest_is_zero(conn->identity_digest)) {
log_warn(LD_BUG, "Bug: Didn't find connection on identity map when " log_warn(LD_BUG, "Didn't find connection on identity map when "
"trying to remove it."); "trying to remove it.");
} }
return; return;
@ -267,7 +267,7 @@ connection_or_finished_flushing(or_connection_t *conn)
connection_stop_writing(TO_CONN(conn)); connection_stop_writing(TO_CONN(conn));
break; break;
default: default:
log_err(LD_BUG,"BUG: called in unexpected state %d.", conn->_base.state); log_err(LD_BUG,"Called in unexpected state %d.", conn->_base.state);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;
} }

View File

@ -425,7 +425,7 @@ cull_wedged_cpuworkers(void)
conn->state == CPUWORKER_STATE_BUSY_ONION && conn->state == CPUWORKER_STATE_BUSY_ONION &&
conn->timestamp_lastwritten + CPUWORKER_BUSY_TIMEOUT < now) { conn->timestamp_lastwritten + CPUWORKER_BUSY_TIMEOUT < now) {
log_notice(LD_BUG, log_notice(LD_BUG,
"Bug: closing wedged cpuworker. Can somebody find the bug?"); "closing wedged cpuworker. Can somebody find the bug?");
num_cpuworkers_busy--; num_cpuworkers_busy--;
num_cpuworkers--; num_cpuworkers--;
connection_mark_for_close(conn); connection_mark_for_close(conn);

View File

@ -597,7 +597,7 @@ directory_send_command(dir_connection_t *conn,
if (strlen(proxystring) + strlen(url) >= 4096) { if (strlen(proxystring) + strlen(url) >= 4096) {
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: squid does not like URLs longer than 4095 bytes, this " "Squid does not like URLs longer than 4095 bytes, this "
"one is %d bytes long: %s%s", "one is %d bytes long: %s%s",
(int)(strlen(proxystring) + strlen(url)), proxystring, url); (int)(strlen(proxystring) + strlen(url)), proxystring, url);
} }
@ -1362,7 +1362,7 @@ write_http_status_line(dir_connection_t *conn, int status,
char buf[256]; char buf[256];
if (tor_snprintf(buf, sizeof(buf), "HTTP/1.0 %d %s\r\n\r\n", if (tor_snprintf(buf, sizeof(buf), "HTTP/1.0 %d %s\r\n\r\n",
status, reason_phrase) < 0) { status, reason_phrase) < 0) {
log_warn(LD_BUG,"Bug: status line too long."); log_warn(LD_BUG,"status line too long.");
return; return;
} }
connection_write_to_buf(buf, strlen(buf), TO_CONN(conn)); connection_write_to_buf(buf, strlen(buf), TO_CONN(conn));
@ -1966,7 +1966,7 @@ connection_dir_finished_flushing(dir_connection_t *conn)
connection_mark_for_close(TO_CONN(conn)); connection_mark_for_close(TO_CONN(conn));
return 0; return 0;
default: default:
log_warn(LD_BUG,"Bug: called in unexpected state %d.", log_warn(LD_BUG,"called in unexpected state %d.",
conn->_base.state); conn->_base.state);
tor_fragile_assert(); tor_fragile_assert();
return -1; return -1;

View File

@ -848,7 +848,7 @@ dns_cancel_pending_resolve(const char *address)
if (!resolve->pending_connections) { if (!resolve->pending_connections) {
/* XXX this should never trigger, but sometimes it does */ /* XXX this should never trigger, but sometimes it does */
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: Address %s is pending but has no pending connections!", "Address %s is pending but has no pending connections!",
escaped_safe_str(address)); escaped_safe_str(address));
tor_fragile_assert(); tor_fragile_assert();
return; return;
@ -1165,7 +1165,7 @@ connection_dns_process_inbuf(connection_t *conn)
if (conn->state != DNSWORKER_STATE_BUSY && buf_datalen(conn->inbuf)) { if (conn->state != DNSWORKER_STATE_BUSY && buf_datalen(conn->inbuf)) {
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: read data (%d bytes) from an idle dns worker (fd %d, " "read data (%d bytes) from an idle dns worker (fd %d, "
"address %s). Please report.", (int)buf_datalen(conn->inbuf), "address %s). Please report.", (int)buf_datalen(conn->inbuf),
conn->s, escaped_safe_str(conn->address)); conn->s, escaped_safe_str(conn->address));
tor_fragile_assert(); tor_fragile_assert();
@ -1680,7 +1680,7 @@ launch_resolve(edge_connection_t *exitconn, or_circuit_t *circ)
: DNS_QUERY_NO_SEARCH; : DNS_QUERY_NO_SEARCH;
/* What? Nameservers not configured? Sounds like a bug. */ /* What? Nameservers not configured? Sounds like a bug. */
if (!nameservers_configured) { if (!nameservers_configured) {
log_warn(LD_EXIT, "Harmless bug: nameservers not configured, but resolve " log_warn(LD_EXIT, "(Harmless.) Nameservers not configured, but resolve "
"launched. Configuring."); "launched. Configuring.");
if (configure_nameservers(1) < 0) if (configure_nameservers(1) < 0)
return -1; return -1;

View File

@ -422,7 +422,7 @@ conn_read_callback(int fd, short event, void *_conn)
if (connection_handle_read(conn) < 0) { if (connection_handle_read(conn) < 0) {
if (!conn->marked_for_close) { if (!conn->marked_for_close) {
#ifndef MS_WINDOWS #ifndef MS_WINDOWS
log_warn(LD_BUG,"Bug: unhandled error on read for %s connection " log_warn(LD_BUG,"Unhandled error on read for %s connection "
"(fd %d); removing", "(fd %d); removing",
conn_type_to_string(conn->type), conn->s); conn_type_to_string(conn->type), conn->s);
tor_fragile_assert(); tor_fragile_assert();
@ -456,7 +456,7 @@ conn_write_callback(int fd, short events, void *_conn)
if (!conn->marked_for_close) { if (!conn->marked_for_close) {
/* this connection is broken. remove it. */ /* this connection is broken. remove it. */
log_fn(LOG_WARN,LD_BUG, log_fn(LOG_WARN,LD_BUG,
"Bug: unhandled error on write for %s connection (fd %d); removing", "unhandled error on write for %s connection (fd %d); removing",
conn_type_to_string(conn->type), conn->s); conn_type_to_string(conn->type), conn->s);
tor_fragile_assert(); tor_fragile_assert();
if (CONN_IS_EDGE(conn)) { if (CONN_IS_EDGE(conn)) {

View File

@ -520,7 +520,7 @@ connection_edge_send_command(edge_connection_t *fromconn, circuit_t *circ,
if (fromconn && fromconn->_base.marked_for_close) { if (fromconn && fromconn->_base.marked_for_close) {
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: called on conn that's already marked for close at %s:%d.", "called on conn that's already marked for close at %s:%d.",
fromconn->_base.marked_for_close_file, fromconn->_base.marked_for_close_file,
fromconn->_base.marked_for_close); fromconn->_base.marked_for_close);
return 0; return 0;
@ -1064,7 +1064,7 @@ connection_edge_process_relay_cell(cell_t *cell, circuit_t *circ,
conn->stream_id); conn->stream_id);
if (conn->socks_request && !conn->socks_request->has_finished) if (conn->socks_request && !conn->socks_request->has_finished)
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: open stream hasn't sent socks answer yet? Closing."); "open stream hasn't sent socks answer yet? Closing.");
/* We just *got* an end; no reason to send one. */ /* We just *got* an end; no reason to send one. */
conn->_base.edge_has_sent_end = 1; conn->_base.edge_has_sent_end = 1;
if (!conn->end_reason) if (!conn->end_reason)
@ -1234,7 +1234,7 @@ connection_edge_package_raw_inbuf(edge_connection_t *conn, int package_partial)
if (conn->_base.marked_for_close) { if (conn->_base.marked_for_close) {
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: called on conn that's already marked for close at %s:%d.", "called on conn that's already marked for close at %s:%d.",
conn->_base.marked_for_close_file, conn->_base.marked_for_close); conn->_base.marked_for_close_file, conn->_base.marked_for_close);
return 0; return 0;
} }

View File

@ -280,7 +280,7 @@ rend_client_remove_intro_point(extend_info_t *failed_intro, const char *query)
r = rend_cache_lookup_entry(query, -1, &ent); r = rend_cache_lookup_entry(query, -1, &ent);
if (r<0) { if (r<0) {
log_warn(LD_BUG, "Bug: malformed service ID %s.", escaped_safe_str(query)); log_warn(LD_BUG, "Malformed service ID %s.", escaped_safe_str(query));
return -1; return -1;
} }
if (r==0) { if (r==0) {

View File

@ -359,7 +359,7 @@ rend_service_load_keys(void)
return -1; return -1;
} }
if (crypto_pk_get_digest(s->private_key, s->pk_digest)<0) { if (crypto_pk_get_digest(s->private_key, s->pk_digest)<0) {
log_warn(LD_BUG, "Bug: Couldn't compute hash of public key."); log_warn(LD_BUG, "Couldn't compute hash of public key.");
return -1; return -1;
} }
if (strlcpy(fname,s->directory,sizeof(fname)) >= sizeof(fname) || if (strlcpy(fname,s->directory,sizeof(fname)) >= sizeof(fname) ||

View File

@ -944,7 +944,7 @@ router_rebuild_descriptor(int force)
ri->cache_info.signed_descriptor_body = tor_malloc(8192); ri->cache_info.signed_descriptor_body = tor_malloc(8192);
if (router_dump_router_to_string(ri->cache_info.signed_descriptor_body, 8192, if (router_dump_router_to_string(ri->cache_info.signed_descriptor_body, 8192,
ri, get_identity_key())<0) { ri, get_identity_key())<0) {
log_warn(LD_BUG, "Bug: Couldn't generate router descriptor."); log_warn(LD_BUG, "Couldn't generate router descriptor.");
return -1; return -1;
} }
ri->cache_info.signed_descriptor_len = ri->cache_info.signed_descriptor_len =

View File

@ -287,7 +287,7 @@ router_rebuild_store(int force)
sized_chunk_t *c; sized_chunk_t *c;
const char *body = signed_descriptor_get_body(sd); const char *body = signed_descriptor_get_body(sd);
if (!body) { if (!body) {
log_warn(LD_BUG, "Bug! No descriptor available for router."); log_warn(LD_BUG, "No descriptor available for router.");
goto done; goto done;
} }
c = tor_malloc(sizeof(sized_chunk_t)); c = tor_malloc(sizeof(sized_chunk_t));
@ -4061,7 +4061,7 @@ update_router_descriptor_cache_downloads(time_t now)
continue; continue;
if (router_get_by_descriptor_digest(rs->descriptor_digest)) { if (router_get_by_descriptor_digest(rs->descriptor_digest)) {
log_warn(LD_BUG, log_warn(LD_BUG,
"Bug: We have a router descriptor, but need_to_mirror=1."); "We have a router descriptor, but need_to_mirror=1.");
rs->need_to_mirror = 0; rs->need_to_mirror = 0;
continue; continue;
} }

View File

@ -1806,7 +1806,7 @@ tor_version_as_new_as(const char *platform, const char *cutoff)
tor_assert(platform); tor_assert(platform);
if (tor_version_parse(cutoff, &cutoff_version)<0) { if (tor_version_parse(cutoff, &cutoff_version)<0) {
log_warn(LD_DIR,"Bug: cutoff version '%s' unparseable.",cutoff); log_warn(LD_BUG,"cutoff version '%s' unparseable.",cutoff);
return 0; return 0;
} }
if (strcmpstart(platform,"Tor ")) /* nonstandard Tor; be safe and say yes */ if (strcmpstart(platform,"Tor ")) /* nonstandard Tor; be safe and say yes */