When we get an EOF or a timeout on a directory connection, note how many bytes of serverdesc we are dropping. This will help us determine whether it is smart to parse incomplete serverdesc responses.

svn:r5186
This commit is contained in:
Nick Mathewson 2005-10-04 22:34:09 +00:00
parent 61ea516885
commit 42e17182da
3 changed files with 13 additions and 1 deletions

View File

@ -188,7 +188,7 @@ N . Routerdesc download changes
o Networkstatus should list who's an authority.
o Add nickname element to dirserver line. Log this along with IP:Port.
o Warn when using non-default directory servers.
- When giving up on a non-finished dir request, log how many bytes
o When giving up on a non-finished dir request, log how many bytes
dropped, to see whether it's worthwhile to use partial info.
- Security
- Alices avoid duplicate class C nodes.

View File

@ -1111,6 +1111,12 @@ connection_dir_reached_eof(connection_t *conn)
int retval;
if (conn->state != DIR_CONN_STATE_CLIENT_READING) {
log_fn(LOG_INFO,"conn reached eof, not reading. Closing.");
/* This check is temporary; it's to let us know whether we should consider
* parsing partial serverdesc responses. */
if (conn->purpose == DIR_PURPOSE_FETCH_SERVERDESC) {
log_fn(LOG_NOTICE, "Reached EOF while downloading server descriptors; dropping %d bytes.",
buf_datalen(conn->inbuf));
}
connection_close_immediate(conn); /* it was an error; give up on flushing */
connection_mark_for_close(conn);
return -1;

View File

@ -575,6 +575,12 @@ run_connection_housekeeping(int i, time_t now)
conn->timestamp_lastwritten + 5*60 < now) {
log_fn(LOG_INFO,"Expiring wedged directory conn (fd %d, purpose %d)",
conn->s, conn->purpose);
/* This check is temporary; it's to let us know whether we should consider
* parsing partial serverdesc responses. */
if (conn->purpose == DIR_PURPOSE_FETCH_SERVERDESC) {
log_fn(LOG_NOTICE, "Expired wedged directory conn was downloading server descriptors; dropping %d bytes.",
buf_datalen(conn->inbuf));
}
connection_mark_for_close(conn);
return;
}