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