mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-11-10 21:23:58 +01:00
Report only the first bootstrap failure from an orconn
Otherwise, when we report "identity mismatch", we then later report DONE when the connection gets closed. Fixes bug 10431; bugfix on 0.2.1.1-alpha.
This commit is contained in:
parent
0f395a7c06
commit
b0bbe6b2f1
5
changes/bug10431
Normal file
5
changes/bug10431
Normal file
@ -0,0 +1,5 @@
|
||||
o Minor bugfixes:
|
||||
- Only report the first fatal boostrap error on a given OR
|
||||
connection. This prevents controllers from declaring that a
|
||||
connection has failed because of "DONE" or other junk reasons.
|
||||
Fixes bug 10431; bugfix on 0.2.1.1-alpha.
|
@ -4884,7 +4884,7 @@ control_event_bootstrap(bootstrap_status_t status, int progress)
|
||||
*/
|
||||
MOCK_IMPL(void,
|
||||
control_event_bootstrap_problem, (const char *warn, int reason,
|
||||
const or_connection_t *or_conn))
|
||||
or_connection_t *or_conn))
|
||||
{
|
||||
int status = bootstrap_percent;
|
||||
const char *tag, *summary;
|
||||
@ -4895,6 +4895,11 @@ MOCK_IMPL(void,
|
||||
/* bootstrap_percent must not be in "undefined" state here. */
|
||||
tor_assert(status >= 0);
|
||||
|
||||
if (or_conn->have_noted_bootstrap_problem)
|
||||
return;
|
||||
|
||||
or_conn->have_noted_bootstrap_problem = 1;
|
||||
|
||||
if (bootstrap_percent == 100)
|
||||
return; /* already bootstrapped; nothing to be done here. */
|
||||
|
||||
|
@ -94,7 +94,7 @@ void monitor_owning_controller_process(const char *process_spec);
|
||||
void control_event_bootstrap(bootstrap_status_t status, int progress);
|
||||
MOCK_DECL(void, control_event_bootstrap_problem,(const char *warn,
|
||||
int reason,
|
||||
const or_connection_t *or_conn));
|
||||
or_connection_t *or_conn));
|
||||
|
||||
void control_event_clients_seen(const char *controller_str);
|
||||
void control_event_transport_launched(const char *mode,
|
||||
|
@ -1481,6 +1481,10 @@ typedef struct or_connection_t {
|
||||
unsigned int is_outgoing:1;
|
||||
unsigned int proxy_type:2; /**< One of PROXY_NONE...PROXY_SOCKS5 */
|
||||
unsigned int wide_circ_ids:1;
|
||||
/** True iff this connection has had its bootstrap failure logged with
|
||||
* control_event_bootstrap_problem. */
|
||||
unsigned int have_noted_bootstrap_problem:1;
|
||||
|
||||
uint16_t link_proto; /**< What protocol version are we using? 0 for
|
||||
* "none negotiated yet." */
|
||||
|
||||
|
@ -364,7 +364,7 @@ test_ext_or_cookie_auth_testvec(void *arg)
|
||||
|
||||
static void
|
||||
ignore_bootstrap_problem(const char *warn, int reason,
|
||||
const or_connection_t *conn)
|
||||
or_connection_t *conn)
|
||||
{
|
||||
(void)warn;
|
||||
(void)reason;
|
||||
|
Loading…
Reference in New Issue
Block a user