From 793f1ce007e978ad961a3dea0fda32299cb47e5b Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Tue, 31 Mar 2009 01:29:07 +0000 Subject: [PATCH] Directory authorities should never send a 503 "busy" response to requests for votes or keys. Bugfix on 0.2.0.8-alpha; exposed by bug 959. svn:r19189 --- ChangeLog | 5 ++++- src/or/directory.c | 6 +++--- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8fe9cb7589..3a45a0f72d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -Changes in version 0.2.1.14-??? - 2009-03-?? +Changes in version 0.2.1.14-??? - 2009-04-?? o Minor bugfixes: - Avoid trying to print raw memory to the logs when we decide to give up on downloading a given relay descriptor. Bugfix on @@ -16,6 +16,9 @@ Changes in version 0.2.1.14-??? - 2009-03-?? duplicating a string at the end of a page. This bug was harmless for now, but could have meant crashes later. Fix by lark. Bugfix on 0.2.1.1-alpha. + - Directory authorities should never send a 503 "busy" response to + requests for votes or keys. Bugfix on 0.2.0.8-alpha; exposed by + bug 959. o Minor features (controller): - Try harder to look up nicknames for routers on a circuit when diff --git a/src/or/directory.c b/src/or/directory.c index e4a51b4b54..892c3718f4 100644 --- a/src/or/directory.c +++ b/src/or/directory.c @@ -2604,7 +2604,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers, !strcmpstart(url,"/tor/status-vote/next/")) { /* XXXX If-modified-since is only implemented for the current * consensus: that's probably fine, since it's the only vote document - * people fetch much.*/ + * people fetch much. */ int current; ssize_t body_len = 0; ssize_t estimated_len = 0; @@ -2670,7 +2670,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers, } }); - if (global_write_bucket_low(TO_CONN(conn), estimated_len, 1)) { + if (global_write_bucket_low(TO_CONN(conn), estimated_len, 2)) { write_http_status_line(conn, 503, "Directory busy, try again later."); goto vote_done; } @@ -2827,7 +2827,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers, SMARTLIST_FOREACH(certs, authority_cert_t *, c, len += c->cache_info.signed_descriptor_len); - if (global_write_bucket_low(TO_CONN(conn), compressed?len/2:len, 1)) { + if (global_write_bucket_low(TO_CONN(conn), compressed?len/2:len, 2)) { write_http_status_line(conn, 503, "Directory busy, try again later."); goto keys_done; } -- 2.47.3