summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Mathewson <nickm@torproject.org>2007-12-20 05:06:02 +0000
committerNick Mathewson <nickm@torproject.org>2007-12-20 05:06:02 +0000
commit6de2b484cf8e236cbf348d6f4c90dc453ae6a4a6 (patch)
tree4811f26db22bf890cf94cd4d73f10fb6091f130e
parent5c33c0632ef2c2094705024b4068fa3d58cce553 (diff)
downloadtor-6de2b484cf8e236cbf348d6f4c90dc453ae6a4a6.tar.gz
tor-6de2b484cf8e236cbf348d6f4c90dc453ae6a4a6.zip
r17270@catbus: nickm | 2007-12-20 00:04:21 -0500
When we decide to send a 503 in response to a request for server descriptors, disable spooling so that we do not then send the descriptors anyway. Fixes bug 539. svn:r12882
-rw-r--r--ChangeLog6
-rw-r--r--src/or/directory.c1
2 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 20c31191f0..119eb1c0bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -85,7 +85,11 @@ Changes in version 0.2.0.13-alpha - 2007-12-??
- Fix compilation with --disable-threads set.
- Authorities decide whether they're authoritative for a given router
based on the router's purpose.
- - Don't crash on name lookup when we have no current consensus.
+ - Don't crash on name lookup when we have no current consensus. Fixes
+ bug 538; bugfix on 0.2.0.x.
+ - When we decide to send a 503 response to a request for servers, do
+ not then also send the server descriptors: this defeats the whole
+ purpose. Fixes bug 539; bugfix on 0.1.2.x.
o Minor features:
- On USR1, when dmalloc is in use, log the top 10 memory
diff --git a/src/or/directory.c b/src/or/directory.c
index 02c411d499..7d3aebfd03 100644
--- a/src/or/directory.c
+++ b/src/or/directory.c
@@ -2440,6 +2440,7 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
"Client asked for server descriptors, but we've been "
"writing too many bytes lately. Sending 503 Dir busy.");
write_http_status_line(conn, 503, "Directory busy, try again later");
+ conn->dir_spool_src = DIR_SPOOL_NONE;
goto done;
}
write_http_response_header(conn, -1, deflated, cache_lifetime);