mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
add geoff's NoPublish patch
svn:r4084
This commit is contained in:
@@ -128,6 +128,7 @@ static config_var_t config_vars[] = {
|
||||
VAR("FirewallPorts", CSV, FirewallPorts, "80,443"),
|
||||
VAR("MyFamily", STRING, MyFamily, NULL),
|
||||
VAR("NodeFamily", LINELIST, NodeFamilies, NULL),
|
||||
VAR("NoPublish", BOOL, NoPublish, "0"),
|
||||
VAR("Group", STRING, Group, NULL),
|
||||
VAR("HashedControlPassword",STRING, HashedControlPassword, NULL),
|
||||
VAR("HttpProxy", STRING, HttpProxy, NULL),
|
||||
@@ -1330,6 +1331,11 @@ options_validate(or_options_t *options)
|
||||
result = -1;
|
||||
}
|
||||
|
||||
if (options->AuthoritativeDir && options->NoPublish) {
|
||||
log(LOG_WARN, "You cannot set both AuthoritativeDir and NoPublish.");
|
||||
result = -1;
|
||||
}
|
||||
|
||||
if (options->ConnLimit <= 0) {
|
||||
log(LOG_WARN, "ConnLimit must be greater than 0, but was set to %d",
|
||||
options->ConnLimit);
|
||||
|
||||
@@ -1010,6 +1010,7 @@ typedef struct {
|
||||
int DirPort; /**< Port to listen on for directory connections. */
|
||||
int AuthoritativeDir; /**< Boolean: is this an authoritative directory? */
|
||||
int ClientOnly; /**< Boolean: should we never evolve into a server role? */
|
||||
int NoPublish; /**< Boolean: should we never publish a descriptor? */
|
||||
int ConnLimit; /**< Requested maximum number of simultaneous connections. */
|
||||
int _ConnLimit; /**< Actual maximum number of simultaneous connections. */
|
||||
int IgnoreVersion; /**< If true, run no matter what versions of Tor the
|
||||
|
||||
+10
-5
@@ -472,18 +472,23 @@ int proxy_mode(or_options_t *options) {
|
||||
return (options->SocksPort != 0 || options->SocksBindAddress);
|
||||
}
|
||||
|
||||
/** Decide if we're a publishable server or just a client. We are a server if:
|
||||
/** Decide if we're a publishable server. We are a publishable server if:
|
||||
* - We don't have the ClientOnly option set
|
||||
* and
|
||||
* - We don't have the NoPublish option set
|
||||
* and
|
||||
* - We have ORPort set
|
||||
* and
|
||||
* - We believe we are reachable from the outside; or
|
||||
* - We have the AuthoritativeDirectory option set.
|
||||
* or
|
||||
* - We don't have the ClientOnly option set; and
|
||||
* - We have ORPort set; and
|
||||
* - We believe we are reachable from the outside.
|
||||
*/
|
||||
static int decide_if_publishable_server(time_t now) {
|
||||
or_options_t *options = get_options();
|
||||
|
||||
if (options->ClientOnly)
|
||||
return 0;
|
||||
if (options->NoPublish)
|
||||
return 0;
|
||||
if (!server_mode(options))
|
||||
return 0;
|
||||
if (options->AuthoritativeDir)
|
||||
|
||||
Reference in New Issue
Block a user