mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-27 22:03:31 +01:00
Add the torrc option HiddenServiceNumIntroductionPoints
This is a way to specify the amount of introduction points an hidden service can have. Maximum value is 10 and the default is 3. Fixes #4862 Signed-off-by: David Goulet <dgoulet@ev0ke.net>
This commit is contained in:
parent
8dcbdf58a7
commit
adc04580f8
8
changes/bug4862
Normal file
8
changes/bug4862
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
o Major feature (Hidden Service):
|
||||||
|
- Remove the introduction point adaptative algorithm which is leaking
|
||||||
|
popularity by changing the amount of introduction points depending on
|
||||||
|
the amount of traffic the HS sees. With this, we stick to only 3
|
||||||
|
introduction points.
|
||||||
|
- Add the torrc option HiddenServiceNumIntroductionPoints for an
|
||||||
|
operatory to specify a fix amount of introduction points. Maximum
|
||||||
|
value is 10 and default is 3.
|
@ -2177,6 +2177,10 @@ The following options are used to configure a hidden service.
|
|||||||
only owner is able to read the hidden service directory. (Default: 0)
|
only owner is able to read the hidden service directory. (Default: 0)
|
||||||
Has no effect on Windows.
|
Has no effect on Windows.
|
||||||
|
|
||||||
|
[[HiddenServiceNumIntroductionPoints]] **HiddenServiceNumIntroductionPoints** __NUM__::
|
||||||
|
Number of introduction points the hidden service will have. You can't
|
||||||
|
have more than 10. (Default: 3)
|
||||||
|
|
||||||
TESTING NETWORK OPTIONS
|
TESTING NETWORK OPTIONS
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
@ -288,6 +288,7 @@ static config_var_t option_vars_[] = {
|
|||||||
VAR("HiddenServiceAllowUnknownPorts",LINELIST_S, RendConfigLines, NULL),
|
VAR("HiddenServiceAllowUnknownPorts",LINELIST_S, RendConfigLines, NULL),
|
||||||
VAR("HiddenServiceMaxStreams",LINELIST_S, RendConfigLines, NULL),
|
VAR("HiddenServiceMaxStreams",LINELIST_S, RendConfigLines, NULL),
|
||||||
VAR("HiddenServiceMaxStreamsCloseCircuit",LINELIST_S, RendConfigLines, NULL),
|
VAR("HiddenServiceMaxStreamsCloseCircuit",LINELIST_S, RendConfigLines, NULL),
|
||||||
|
VAR("HiddenServiceNumIntroductionPoints", LINELIST_S, RendConfigLines, NULL),
|
||||||
V(HiddenServiceStatistics, BOOL, "0"),
|
V(HiddenServiceStatistics, BOOL, "0"),
|
||||||
V(HidServAuth, LINELIST, NULL),
|
V(HidServAuth, LINELIST, NULL),
|
||||||
V(CloseHSClientCircuitsImmediatelyOnTimeout, BOOL, "0"),
|
V(CloseHSClientCircuitsImmediatelyOnTimeout, BOOL, "0"),
|
||||||
|
@ -87,6 +87,8 @@ struct rend_service_port_config_s {
|
|||||||
|
|
||||||
/** Try to maintain this many intro points per service by default. */
|
/** Try to maintain this many intro points per service by default. */
|
||||||
#define NUM_INTRO_POINTS_DEFAULT 3
|
#define NUM_INTRO_POINTS_DEFAULT 3
|
||||||
|
/** Maximum number of intro points per service. */
|
||||||
|
#define NUM_INTRO_POINTS_MAX 10
|
||||||
|
|
||||||
/** If we can't build our intro circuits, don't retry for this long. */
|
/** If we can't build our intro circuits, don't retry for this long. */
|
||||||
#define INTRO_CIRC_RETRY_PERIOD (60*5)
|
#define INTRO_CIRC_RETRY_PERIOD (60*5)
|
||||||
@ -577,7 +579,22 @@ rend_config_services(const or_options_t *options, int validate_only)
|
|||||||
log_info(LD_CONFIG,
|
log_info(LD_CONFIG,
|
||||||
"HiddenServiceMaxStreamsCloseCircuit=%d for %s",
|
"HiddenServiceMaxStreamsCloseCircuit=%d for %s",
|
||||||
(int)service->max_streams_close_circuit, service->directory);
|
(int)service->max_streams_close_circuit, service->directory);
|
||||||
|
} else if (!strcasecmp(line->key, "HiddenServiceNumIntroductionPoints")) {
|
||||||
|
service->n_intro_points_wanted =
|
||||||
|
(unsigned int) tor_parse_long(line->value, 10,
|
||||||
|
NUM_INTRO_POINTS_DEFAULT,
|
||||||
|
NUM_INTRO_POINTS_MAX, &ok, NULL);
|
||||||
|
if (!ok) {
|
||||||
|
log_warn(LD_CONFIG,
|
||||||
|
"HiddenServiceNumIntroductionPoints "
|
||||||
|
"should be between %d and %d, not %s",
|
||||||
|
NUM_INTRO_POINTS_DEFAULT, NUM_INTRO_POINTS_MAX,
|
||||||
|
line->value);
|
||||||
|
rend_service_free(service);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
log_info(LD_CONFIG, "HiddenServiceNumIntroductionPoints=%d for %s",
|
||||||
|
service->n_intro_points_wanted, service->directory);
|
||||||
} else if (!strcasecmp(line->key, "HiddenServiceAuthorizeClient")) {
|
} else if (!strcasecmp(line->key, "HiddenServiceAuthorizeClient")) {
|
||||||
/* Parse auth type and comma-separated list of client names and add a
|
/* Parse auth type and comma-separated list of client names and add a
|
||||||
* rend_authorized_client_t for each client to the service's list
|
* rend_authorized_client_t for each client to the service's list
|
||||||
|
Loading…
Reference in New Issue
Block a user