|
@@ -537,7 +537,7 @@ directory_send_command(connection_t *conn, const char *platform,
|
|
|
tor_assert(!payload);
|
|
|
log_debug(LD_DIR,
|
|
|
"Asking for compressed directory from server running %s",
|
|
|
- platform?platform:"<unknown version>");
|
|
|
+ platform?escaped(platform):"<unknown version>");
|
|
|
httpcommand = "GET";
|
|
|
url = tor_strdup("/tor/dir.z");
|
|
|
break;
|
|
@@ -712,7 +712,8 @@ http_get_origin(const char *headers, connection_t *conn)
|
|
|
if (fwd) {
|
|
|
size_t len = strlen(fwd)+strlen(conn->address)+32;
|
|
|
char *result = tor_malloc(len);
|
|
|
- tor_snprintf(result, len, "'%s' (forwarded for '%s')", conn->address, fwd);
|
|
|
+ tor_snprintf(result, len, "'%s' (forwarded for %s)", conn->address,
|
|
|
+ escaped(fwd));
|
|
|
tor_free(fwd);
|
|
|
return result;
|
|
|
} else {
|
|
@@ -754,7 +755,7 @@ parse_http_response(const char *headers, int *code, time_t *date,
|
|
|
if (sscanf(headers, "HTTP/1.%d %d", &n1, &n2) < 2 ||
|
|
|
(n1 != 0 && n1 != 1) ||
|
|
|
(n2 < 100 || n2 >= 600)) {
|
|
|
- log_warn(LD_HTTP,"Failed to parse header '%s'",headers);
|
|
|
+ log_warn(LD_HTTP,"Failed to parse header %s",escaped(headers));
|
|
|
return -1;
|
|
|
}
|
|
|
*code = n2;
|
|
@@ -801,8 +802,8 @@ parse_http_response(const char *headers, int *code, time_t *date,
|
|
|
} else if (!strcmp(enc, "gzip") || !strcmp(enc, "x-gzip")) {
|
|
|
*compression = GZIP_METHOD;
|
|
|
} else {
|
|
|
- log_info(LD_HTTP, "Unrecognized content encoding: '%s'. Trying to deal.",
|
|
|
- enc);
|
|
|
+ log_info(LD_HTTP, "Unrecognized content encoding: %s. Trying to deal.",
|
|
|
+ escaped(enc));
|
|
|
*compression = -1;
|
|
|
}
|
|
|
}
|
|
@@ -891,8 +892,8 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
if (!reason) reason = tor_strdup("[no reason given]");
|
|
|
|
|
|
log_debug(LD_DIR,
|
|
|
- "Received response from directory server '%s:%d': %d \"%s\"",
|
|
|
- conn->address, conn->port, status_code, reason);
|
|
|
+ "Received response from directory server '%s:%d': %d %s",
|
|
|
+ conn->address, conn->port, status_code, escaped(reason));
|
|
|
|
|
|
if (date_header > 0) {
|
|
|
now = time(NULL);
|
|
@@ -914,9 +915,9 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
}
|
|
|
|
|
|
if (status_code == 503) {
|
|
|
- log_info(LD_DIR,"Received http status code %d (\"%s\") from server "
|
|
|
+ log_info(LD_DIR,"Received http status code %d (%s) from server "
|
|
|
"'%s:%d'. I'll try again soon.",
|
|
|
- status_code, reason, conn->address, conn->port);
|
|
|
+ status_code, escaped(reason), conn->address, conn->port);
|
|
|
tor_free(body); tor_free(headers); tor_free(reason);
|
|
|
return -1;
|
|
|
}
|
|
@@ -982,9 +983,9 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
log_info(LD_DIR,"Received directory (size %d) from server '%s:%d'",
|
|
|
(int)body_len, conn->address, conn->port);
|
|
|
if (status_code != 200) {
|
|
|
- log_warn(LD_DIR,"Received http status code %d (\"%s\") from server "
|
|
|
+ log_warn(LD_DIR,"Received http status code %d (%s) from server "
|
|
|
"'%s:%d'. I'll try again soon.",
|
|
|
- status_code, reason, conn->address, conn->port);
|
|
|
+ status_code, escaped(reason), conn->address, conn->port);
|
|
|
tor_free(body); tor_free(headers); tor_free(reason);
|
|
|
return -1;
|
|
|
}
|
|
@@ -999,9 +1000,9 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
/* just update our list of running routers, if this list is new info */
|
|
|
log_info(LD_DIR,"Received running-routers list (size %d)", (int)body_len);
|
|
|
if (status_code != 200) {
|
|
|
- log_warn(LD_DIR,"Received http status code %d (\"%s\") from server "
|
|
|
+ log_warn(LD_DIR,"Received http status code %d (%s) from server "
|
|
|
"'%s:%d'. I'll try again soon.",
|
|
|
- status_code, reason, conn->address, conn->port);
|
|
|
+ status_code, escaped(reason), conn->address, conn->port);
|
|
|
tor_free(body); tor_free(headers); tor_free(reason);
|
|
|
return -1;
|
|
|
}
|
|
@@ -1023,9 +1024,9 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
"'%s:%d'",(int) body_len, conn->address, conn->port);
|
|
|
if (status_code != 200) {
|
|
|
log_warn(LD_DIR,
|
|
|
- "Received http status code %d (\"%s\") from server "
|
|
|
+ "Received http status code %d (%s) from server "
|
|
|
"'%s:%d' while fetching \"/tor/status/%s\". I'll try again soon.",
|
|
|
- status_code, reason, conn->address, conn->port,
|
|
|
+ status_code, escaped(reason), conn->address, conn->port,
|
|
|
conn->requested_resource);
|
|
|
tor_free(body); tor_free(headers); tor_free(reason);
|
|
|
connection_dir_download_networkstatus_failed(conn);
|
|
@@ -1083,9 +1084,9 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
/* 404 means that it didn't have them; no big deal.
|
|
|
* Older (pre-0.1.1.8) servers said 400 Servers unavailable instead. */
|
|
|
log_fn(dir_okay ? LOG_INFO : LOG_WARN, LD_DIR,
|
|
|
- "Received http status code %d (\"%s\") from server '%s:%d' "
|
|
|
+ "Received http status code %d (%s) from server '%s:%d' "
|
|
|
"while fetching \"/tor/server/%s\". I'll try again soon.",
|
|
|
- status_code, reason, conn->address, conn->port,
|
|
|
+ status_code, escaped(reason), conn->address, conn->port,
|
|
|
conn->requested_resource);
|
|
|
if (!which) {
|
|
|
connection_dir_download_routerdesc_failed(conn);
|
|
@@ -1137,22 +1138,22 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
"descriptor: finished.");
|
|
|
break;
|
|
|
case 400:
|
|
|
- log_warn(LD_GENERAL,"http status 400 (\"%s\") response from "
|
|
|
+ log_warn(LD_GENERAL,"http status 400 (%s) response from "
|
|
|
"dirserver '%s:%d'. Please correct.",
|
|
|
- reason, conn->address, conn->port);
|
|
|
+ escaped(reason), conn->address, conn->port);
|
|
|
break;
|
|
|
case 403:
|
|
|
log_warn(LD_GENERAL,
|
|
|
- "http status 403 (\"%s\") response from dirserver "
|
|
|
+ "http status 403 (%s) response from dirserver "
|
|
|
"'%s:%d'. Is your clock skewed? Have you mailed us your key "
|
|
|
"fingerprint? Are you using the right key? Are you using a "
|
|
|
"private IP address? See http://tor.eff.org/doc/"
|
|
|
- "tor-doc-server.html", reason, conn->address, conn->port);
|
|
|
+ "tor-doc-server.html",escaped(reason), conn->address, conn->port);
|
|
|
break;
|
|
|
default:
|
|
|
log_warn(LD_GENERAL,
|
|
|
- "http status %d (\"%s\") reason unexpected (server '%s:%d').",
|
|
|
- status_code, reason, conn->address, conn->port);
|
|
|
+ "http status %d (%s) reason unexpected (server '%s:%d').",
|
|
|
+ status_code, escaped(reason), conn->address, conn->port);
|
|
|
break;
|
|
|
}
|
|
|
/* return 0 in all cases, since we don't want to mark any
|
|
@@ -1161,8 +1162,8 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
|
|
|
if (conn->purpose == DIR_PURPOSE_FETCH_RENDDESC) {
|
|
|
log_info(LD_REND,"Received rendezvous descriptor (size %d, status %d "
|
|
|
- "(\"%s\"))",
|
|
|
- (int)body_len, status_code, reason);
|
|
|
+ "(%s))",
|
|
|
+ (int)body_len, status_code, escaped(reason));
|
|
|
switch (status_code) {
|
|
|
case 200:
|
|
|
if (rend_cache_store(body, body_len) < 0) {
|
|
@@ -1181,13 +1182,13 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
break;
|
|
|
case 400:
|
|
|
log_warn(LD_REND,
|
|
|
- "http status 400 (\"%s\"). Dirserver didn't like our "
|
|
|
- "rendezvous query?", reason);
|
|
|
+ "http status 400 (%s). Dirserver didn't like our "
|
|
|
+ "rendezvous query?", escaped(reason));
|
|
|
break;
|
|
|
default:
|
|
|
- log_warn(LD_REND,"http status %d (\"%s\") response unexpected (server "
|
|
|
- "'%s:%d').",
|
|
|
- status_code, reason, conn->address, conn->port);
|
|
|
+ log_warn(LD_REND,"http status %d (%s) response unexpected (server "
|
|
|
+ "'%s:%d').",
|
|
|
+ status_code, escaped(reason), conn->address, conn->port);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1197,17 +1198,17 @@ connection_dir_client_reached_eof(connection_t *conn)
|
|
|
case 200:
|
|
|
log_info(LD_REND,
|
|
|
"Uploading rendezvous descriptor: finished with status "
|
|
|
- "200 (\"%s\")", reason);
|
|
|
+ "200 (%s)", escaped(reason));
|
|
|
break;
|
|
|
case 400:
|
|
|
- log_warn(LD_REND,"http status 400 (\"%s\") response from dirserver "
|
|
|
+ log_warn(LD_REND,"http status 400 (%s) response from dirserver "
|
|
|
"'%s:%d'. Malformed rendezvous descriptor?",
|
|
|
- reason, conn->address, conn->port);
|
|
|
+ escaped(reason), conn->address, conn->port);
|
|
|
break;
|
|
|
default:
|
|
|
- log_warn(LD_REND,"http status %d (\"%s\") response unexpected (server "
|
|
|
+ log_warn(LD_REND,"http status %d (%s) response unexpected (server "
|
|
|
"'%s:%d').",
|
|
|
- status_code, reason, conn->address, conn->port);
|
|
|
+ status_code, escaped(reason), conn->address, conn->port);
|
|
|
break;
|
|
|
}
|
|
|
}
|
|
@@ -1728,7 +1729,7 @@ directory_handle_command_post(connection_t *conn, char *headers,
|
|
|
#if 0
|
|
|
if (body_len <= 1024) {
|
|
|
base16_encode(tmp, sizeof(tmp), body, body_len);
|
|
|
- log_notice(LD_DIRSERV,"Body was: %s", tmp);
|
|
|
+ log_notice(LD_DIRSERV,"Body was: %s", escaped(tmp));
|
|
|
}
|
|
|
#endif
|
|
|
write_http_status_line(conn, 400, "Invalid service descriptor rejected");
|
|
@@ -1775,15 +1776,15 @@ directory_handle_command(connection_t *conn)
|
|
|
/* case 1, fall through */
|
|
|
}
|
|
|
|
|
|
- log_debug(LD_DIRSERV,"headers '%s', body '%s'.", headers, body);
|
|
|
+ //log_debug(LD_DIRSERV,"headers %s, body %s.", headers, body);
|
|
|
|
|
|
if (!strncasecmp(headers,"GET",3))
|
|
|
r = directory_handle_command_get(conn, headers, body, body_len);
|
|
|
else if (!strncasecmp(headers,"POST",4))
|
|
|
r = directory_handle_command_post(conn, headers, body, body_len);
|
|
|
else {
|
|
|
- log_warn(LD_PROTOCOL,"Got headers '%s' with unknown command. Closing.",
|
|
|
- headers);
|
|
|
+ log_warn(LD_PROTOCOL,"Got headers %s with unknown command. Closing.",
|
|
|
+ escaped(headers));
|
|
|
r = -1;
|
|
|
}
|
|
|
|
|
@@ -1904,7 +1905,7 @@ dir_routerdesc_download_failed(smartlist_t *failed)
|
|
|
/* update_router_descriptor_downloads(time(NULL)); */
|
|
|
}
|
|
|
|
|
|
-/* Given a directory <b>resource</b> request generated by us, containing zero
|
|
|
+/* Given a directory <b>resource</b> request, containing zero
|
|
|
* or more strings separated by plus signs, followed optionally by ".z", store
|
|
|
* the strings, in order, into <b>fp_out</b>. If <b>compressed_out</b> is
|
|
|
* non-NULL, set it to 1 if the resource ends in ".z", else set it to 0. If
|
|
@@ -1938,13 +1939,13 @@ dir_split_resource_into_fingerprints(const char *resource,
|
|
|
cp = smartlist_get(fp_out, i);
|
|
|
if (strlen(cp) != HEX_DIGEST_LEN) {
|
|
|
log_info(LD_DIR,
|
|
|
- "Skipping digest \"%s\" with non-standard length.", cp);
|
|
|
+ "Skipping digest %s with non-standard length.", escaped(cp));
|
|
|
smartlist_del(fp_out, i--);
|
|
|
goto again;
|
|
|
}
|
|
|
d = tor_malloc_zero(DIGEST_LEN);
|
|
|
if (base16_decode(d, DIGEST_LEN, cp, HEX_DIGEST_LEN)<0) {
|
|
|
- log_info(LD_DIR, "Skipping non-decodable digest \"%s\"", cp);
|
|
|
+ log_info(LD_DIR, "Skipping non-decodable digest %s", escaped(cp));
|
|
|
smartlist_del(fp_out, i--);
|
|
|
goto again;
|
|
|
}
|