Merge remote-tracking branch 'asn-mytor/bug5589_take2'

This commit is contained in:
Nick Mathewson 2012-06-14 13:05:16 -04:00
commit 4fdce6b091
5 changed files with 7 additions and 42 deletions

3
changes/bug5589 Normal file
View 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().

View File

@ -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. */

View File

@ -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

View File

@ -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 {

View File

@ -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) {