From 6de2b484cf8e236cbf348d6f4c90dc453ae6a4a6 Mon Sep 17 00:00:00 2001 From: Nick Mathewson Date: Thu, 20 Dec 2007 05:06:02 +0000 Subject: [PATCH] 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 --- ChangeLog | 6 +++++- src/or/directory.c | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) 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);