mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2025-02-24 14:51:11 +01:00
More emergency-check code for un-removed pending entry conns
This might also be what #17752 needs.
This commit is contained in:
parent
24fcb6adbb
commit
e6be486aea
3 changed files with 27 additions and 5 deletions
|
@ -678,6 +678,13 @@ connection_free,(connection_t *conn))
|
||||||
if (conn->type == CONN_TYPE_CONTROL) {
|
if (conn->type == CONN_TYPE_CONTROL) {
|
||||||
connection_control_closed(TO_CONTROL_CONN(conn));
|
connection_control_closed(TO_CONTROL_CONN(conn));
|
||||||
}
|
}
|
||||||
|
#if 1
|
||||||
|
/* DEBUGGING */
|
||||||
|
if (conn->type == CONN_TYPE_AP) {
|
||||||
|
connection_ap_warn_and_unmark_if_pending_circ(TO_ENTRY_CONN(conn),
|
||||||
|
"connection_free");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
connection_unregister_events(conn);
|
connection_unregister_events(conn);
|
||||||
connection_free_(conn);
|
connection_free_(conn);
|
||||||
}
|
}
|
||||||
|
|
|
@ -566,11 +566,9 @@ connection_ap_about_to_close(entry_connection_t *entry_conn)
|
||||||
#if 1
|
#if 1
|
||||||
/* Check to make sure that this isn't in pending_entry_connections if it
|
/* Check to make sure that this isn't in pending_entry_connections if it
|
||||||
* didn't actually belong there. */
|
* didn't actually belong there. */
|
||||||
if (TO_CONN(edge_conn)->type == CONN_TYPE_AP &&
|
if (TO_CONN(edge_conn)->type == CONN_TYPE_AP) {
|
||||||
smartlist_contains(pending_entry_connections, entry_conn)) {
|
connection_ap_warn_and_unmark_if_pending_circ(entry_conn,
|
||||||
log_warn(LD_BUG, "What was %p doing in pending_entry_connections???",
|
"about_to_close");
|
||||||
entry_conn);
|
|
||||||
smartlist_remove(pending_entry_connections, entry_conn);
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -903,6 +901,19 @@ connection_ap_mark_as_non_pending_circuit(entry_connection_t *entry_conn)
|
||||||
smartlist_remove(pending_entry_connections, entry_conn);
|
smartlist_remove(pending_entry_connections, entry_conn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** DOCDOC */
|
||||||
|
void
|
||||||
|
connection_ap_warn_and_unmark_if_pending_circ(entry_connection_t *entry_conn,
|
||||||
|
const char *where)
|
||||||
|
{
|
||||||
|
if (pending_entry_connections &&
|
||||||
|
smartlist_contains(pending_entry_connections, entry_conn)) {
|
||||||
|
log_warn(LD_BUG, "What was %p doing in pending_entry_connections in %s?",
|
||||||
|
entry_conn, where);
|
||||||
|
connection_ap_mark_as_non_pending_circuit(entry_conn);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/** Tell any AP streams that are waiting for a one-hop tunnel to
|
/** Tell any AP streams that are waiting for a one-hop tunnel to
|
||||||
* <b>failed_digest</b> that they are going to fail. */
|
* <b>failed_digest</b> that they are going to fail. */
|
||||||
/* XXX024 We should get rid of this function, and instead attach
|
/* XXX024 We should get rid of this function, and instead attach
|
||||||
|
|
|
@ -115,6 +115,10 @@ streamid_t get_unique_stream_id_by_circ(origin_circuit_t *circ);
|
||||||
|
|
||||||
void connection_edge_free_all(void);
|
void connection_edge_free_all(void);
|
||||||
|
|
||||||
|
void connection_ap_warn_and_unmark_if_pending_circ(
|
||||||
|
entry_connection_t *entry_conn,
|
||||||
|
const char *where);
|
||||||
|
|
||||||
/** @name Begin-cell flags
|
/** @name Begin-cell flags
|
||||||
*
|
*
|
||||||
* These flags are used in RELAY_BEGIN cells to change the default behavior
|
* These flags are used in RELAY_BEGIN cells to change the default behavior
|
||||||
|
|
Loading…
Add table
Reference in a new issue