dirauth: Add option AuthDirRejectRequestsUnderLoad

This controls the previous feature added that makes dirauth send back a 503
error code on non relay connections if under bandwidth pressure.

Signed-off-by: David Goulet <dgoulet@torproject.org>
This commit is contained in:
David Goulet 2020-02-11 09:56:44 -05:00
parent bd4f4cb5f0
commit 735aa208b1
3 changed files with 15 additions and 0 deletions

View File

@ -2925,6 +2925,13 @@ on the public Tor network.
before it will treat advertised bandwidths as wholly
unreliable. (Default: 500)
[[AuthDirRejectRequestsUnderLoad]] **AuthDirRejectRequestsUnderLoad** **0**|**1**::
If set, the directory authority will start rejecting directory requests
from non relay connections by sending a 503 error code if it is under
bandwidth pressure (reaching the configured limit if any). Relays will
always tried to be answered even if this is on. (Default: 1)
HIDDEN SERVICE OPTIONS
----------------------

View File

@ -671,6 +671,7 @@ static const config_var_t option_vars_[] = {
OBSOLETE("UseNTorHandshake"),
V(User, STRING, NULL),
OBSOLETE("UserspaceIOCPBuffers"),
V(AuthDirRejectRequestsUnderLoad, BOOL, "1"),
V(AuthDirSharedRandomness, BOOL, "1"),
V(AuthDirTestEd25519LinkKeys, BOOL, "1"),
OBSOLETE("V1AuthoritativeDirectory"),

View File

@ -1008,6 +1008,13 @@ struct or_options_t {
*/
uint64_t MaxUnparseableDescSizeToLog;
/** Bool (default: 1): Under bandwidth pressure, if set to 1, the authority
* will always answer directory requests from relays but will start sending
* 503 error code for the other connections. If set to 0, all connections
* are considered the same and the authority will try to answer them all
* regardless of bandwidth pressure or not. */
int AuthDirRejectRequestsUnderLoad;
/** Bool (default: 1): Switch for the shared random protocol. Only
* relevant to a directory authority. If off, the authority won't
* participate in the protocol. If on (default), a flag is added to the