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
o Security fixes:
- 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);
/* Let's return a disclaimer page (users shouldn't use V1 anymore,
and caches don't fetch '/', so this is safe). */
if (global_write_bucket_low(TO_CONN(conn), dlen, 1)) {
log_info(LD_DIRSERV,
"Client asked for DirPortFrontPage content, but we've been "
"writing too many bytes lately. Sending 503 Dir busy.");
write_http_status_line(conn, 503, "Directory busy, try again later");
goto done;
}
/* [We don't check for write_bucket_low here, since we want to serve
* this page no matter what.] */
note_request(url, dlen);
write_http_response_header_impl(conn, dlen, "text/html", "identity",
NULL, DIRPORTFRONTPAGE_CACHE_LIFETIME);