routers sometimes prefer not to talk to dirservers
Tor consists of two components, a program (the software) and a network (the service). If our design is to be modular, then these components will be separable. Specifically, if a Tor controller wants to replace or augment the functionality that a directory server ordinarily provides, then we should allow it to do so. However, aside from NoPublish, we presently have no means by which we can instruct Tor to not attempt to contact the directory servers using the standard, internal mechanism for interacting with directory servers. We want a means by which we can tell Tor to NOT contact the directory server but also NOT complain about its inability to do so. Specifically, if we use controller commands to tell a Tor server to not publish its descriptors, then the server MUST NOT contact the directories for the purpose of publishing descriptors, and otherwise still be functional. Also, if we use controller commands to tell a Tor server OR client to not fetch descriptors from the directory, then the server OR client MUST NOT contact the directories for the purpose of fetching descriptors, and otherwise still be functional (though perhaps the functionality will be limited if Tor clients know about fewer than three descriptors).
So here are the new config options. All have value '1' by default.
PublishServerDescriptor {0,1} PublishHiddenServiceDescriptors {0,1} FetchServerDescriptors {0,1} FetchHiddenServiceDescriptors {0,1}
PublishServerDescriptor determines whether a server publishes its descriptor to the directories.
PublishHiddenServiceDescriptors determines whether a server publishes any hidden service descriptors it controls to the directories.
FetchServerDescriptors determines whether a server or client fetches server descriptors from the directories.
FetchHiddenServiceDescriptors determines whether a server or client fetches hidden service descriptors from the directories.
(*) Both ClientOnly and NoPublish SHOULD be aliases for the NEGATION of PublishServerDescriptor.
We might also consider the ability to configure the set of directories to the empty set...
[Automatically added by flyspray2trac: Operating System: All]