mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Merge remote-tracking branch 'asn-mytor/bug5589_take2'
This commit is contained in:
commit
4fdce6b091
3
changes/bug5589
Normal file
3
changes/bug5589
Normal file
@ -0,0 +1,3 @@
|
||||
o Code simplifications and refactoring:
|
||||
- Remove validate_pluggable_transports_config(): its warning
|
||||
message is now handled by connection_or_connect().
|
@ -4970,34 +4970,6 @@ transport_add_from_config(const tor_addr_t *addr, uint16_t port,
|
||||
}
|
||||
}
|
||||
|
||||
/** Warn the user of possible pluggable transport misconfiguration.
|
||||
* Return 0 if the validation happened, -1 if we should postpone the
|
||||
* validation. */
|
||||
int
|
||||
validate_pluggable_transports_config(void)
|
||||
{
|
||||
/* Don't validate if managed proxies are not yet fully configured. */
|
||||
if (!bridge_list || pt_proxies_configuration_pending())
|
||||
return -1;
|
||||
|
||||
SMARTLIST_FOREACH_BEGIN(bridge_list, const bridge_info_t *, b) {
|
||||
/* Skip bridges without transports. */
|
||||
if (!b->transport_name)
|
||||
continue;
|
||||
/* See if the user has Bridges that specify nonexistent
|
||||
pluggable transports. We should warn the user in such case,
|
||||
since it's probably misconfiguration. */
|
||||
if (!transport_get_by_name(b->transport_name))
|
||||
log_warn(LD_CONFIG, "We can't find a pluggable transport proxy "
|
||||
"that supports '%s' for bridge '%s:%u'. This can happen "
|
||||
"if you haven't provided a ClientTransportPlugin line, or "
|
||||
"if your pluggable transport proxy stopped working.",
|
||||
b->transport_name, fmt_addr(&b->addr), b->port);
|
||||
} SMARTLIST_FOREACH_END(b);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
/** Return a bridge pointer if <b>ri</b> is one of our known bridges
|
||||
* (either by comparing keys if possible, else by comparing addr/port).
|
||||
* Else return NULL. */
|
||||
|
@ -167,7 +167,5 @@ int find_transport_by_bridge_addrport(const tor_addr_t *addr, uint16_t port,
|
||||
const transport_t **transport);
|
||||
transport_t *transport_get_by_name(const char *name);
|
||||
|
||||
int validate_pluggable_transports_config(void);
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -1085,9 +1085,10 @@ connection_or_connect(const tor_addr_t *_addr, uint16_t port,
|
||||
|
||||
if (transport_name) {
|
||||
log_warn(LD_GENERAL, "We were supposed to connect to bridge '%s:%u' "
|
||||
"using pluggable transport '%s', but it seems that we can't "
|
||||
"find a pluggable transport proxy supporting '%s'. Please make "
|
||||
"sure that your configuration file is valid.",
|
||||
"using pluggable transport '%s', but we can't find a pluggable "
|
||||
"transport proxy supporting '%s'. This can happen if you "
|
||||
"haven't provided a ClientTransportPlugin line, or if "
|
||||
"your pluggable transport proxy stopped running.",
|
||||
fmt_addr(&TO_CONN(conn)->addr), TO_CONN(conn)->port,
|
||||
transport_name, transport_name);
|
||||
} else {
|
||||
|
@ -1142,7 +1142,6 @@ run_scheduled_events(time_t now)
|
||||
static int should_init_bridge_stats = 1;
|
||||
static time_t time_to_retry_dns_init = 0;
|
||||
static time_t time_to_next_heartbeat = 0;
|
||||
static int has_validated_pt = 0;
|
||||
const or_options_t *options = get_options();
|
||||
|
||||
int is_server = server_mode(options);
|
||||
@ -1550,14 +1549,6 @@ run_scheduled_events(time_t now)
|
||||
if (!net_is_disabled() && pt_proxies_configuration_pending())
|
||||
pt_configure_remaining_proxies();
|
||||
|
||||
/** 11c. validate pluggable transports configuration if we need to */
|
||||
if (!has_validated_pt &&
|
||||
(options->Bridges || options->ClientTransportPlugin)) {
|
||||
if (validate_pluggable_transports_config() == 0) {
|
||||
has_validated_pt = 1;
|
||||
}
|
||||
}
|
||||
|
||||
/** 12. write the heartbeat message */
|
||||
if (options->HeartbeatPeriod &&
|
||||
time_to_next_heartbeat <= now) {
|
||||
|
Loading…
Reference in New Issue
Block a user