From 99c177143270544f80d224cc8b85edf351310ff3 Mon Sep 17 00:00:00 2001 From: Roger Dingledine Date: Fri, 26 Jan 2007 08:01:29 +0000 Subject: never refuse directory requests from local addresses svn:r9421 --- src/or/connection.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'src/or/connection.c') diff --git a/src/or/connection.c b/src/or/connection.c index e80633a740..823c5d1a17 100644 --- a/src/or/connection.c +++ b/src/or/connection.c @@ -1175,8 +1175,8 @@ connection_bucket_write_limit(connection_t *conn) } /** Return 1 if the global write bucket is low enough that we shouldn't - * send attempt bytes of low-priority directory stuff out. - * Else return 0. + * send attempt bytes of low-priority directory stuff out to + * conn. Else return 0. * Priority is 1 for v1 requests (directories and running-routers), * and 2 for v2 requests (statuses and descriptors). But see FFFF in @@ -1194,11 +1194,14 @@ connection_bucket_write_limit(connection_t *conn) * that's harder to quantify and harder to keep track of. */ int -global_write_bucket_low(size_t attempt, int priority) +global_write_bucket_low(connection_t *conn, size_t attempt, int priority) { if (authdir_mode(get_options()) && priority>1) return 0; /* there's always room to answer v2 if we're an auth dir */ + if (is_internal_IP(conn->addr, 0)) + return 0; /* local conns don't get limited */ + if (global_write_bucket < (int)attempt) return 1; /* not enough space no matter the priority */ -- cgit v1.2.3-54-g00ecf