Serve DirPortFrontPage even if the write bucket is low.

arma's rationale: "I think this is a bug, since people intentionally
set DirPortFrontPage, so they really do want their relay to serve that
page when it's asked for. Having it appear only sometimes (or roughly
never in Sebastian's case) makes it way less useful."

Fixes bug 1013; bugfix on 0.2.1.8-alpha.
This commit is contained in:
Nick Mathewson 2009-06-22 12:34:32 -04:00
parent e6a1e7001b
commit 262455527a
2 changed files with 9 additions and 7 deletions

View File

@ -1,3 +1,9 @@
Changes in version 0.2.1.17-?? - 2009-??-??
o Minor bugfixes:
- Serve the DirPortFrontPage page even when we have been approaching
our quotas recently. Fixes bug 1013; bugfix on 0.2.1.8-alpha.
Changes in version 0.2.1.16-rc - 2009-06-20 Changes in version 0.2.1.16-rc - 2009-06-20
o Security fixes: o Security fixes:
- Fix an edge case where a malicious exit relay could convince a - Fix an edge case where a malicious exit relay could convince a

View File

@ -2428,13 +2428,9 @@ directory_handle_command_get(dir_connection_t *conn, const char *headers,
dlen = strlen(frontpage); dlen = strlen(frontpage);
/* Let's return a disclaimer page (users shouldn't use V1 anymore, /* Let's return a disclaimer page (users shouldn't use V1 anymore,
and caches don't fetch '/', so this is safe). */ and caches don't fetch '/', so this is safe). */
if (global_write_bucket_low(TO_CONN(conn), dlen, 1)) {
log_info(LD_DIRSERV, /* [We don't check for write_bucket_low here, since we want to serve
"Client asked for DirPortFrontPage content, but we've been " * this page no matter what.] */
"writing too many bytes lately. Sending 503 Dir busy.");
write_http_status_line(conn, 503, "Directory busy, try again later");
goto done;
}
note_request(url, dlen); note_request(url, dlen);
write_http_response_header_impl(conn, dlen, "text/html", "identity", write_http_response_header_impl(conn, dlen, "text/html", "identity",
NULL, DIRPORTFRONTPAGE_CACHE_LIFETIME); NULL, DIRPORTFRONTPAGE_CACHE_LIFETIME);