mirror of
https://gitlab.torproject.org/tpo/core/tor.git
synced 2024-12-06 19:41:15 +01:00
expire dir connections that live for more than 5 minutes
svn:r1663
This commit is contained in:
@@ -757,7 +757,9 @@ static int connection_ap_handshake_process_socks(connection_t *conn) {
|
||||
return connection_ap_handshake_attach_circuit(conn);
|
||||
} else {
|
||||
conn->state = AP_CONN_STATE_RENDDESC_WAIT;
|
||||
if(!connection_get_by_type_rendquery(CONN_TYPE_DIR, conn->rend_query)) {
|
||||
if(connection_get_by_type_rendquery(CONN_TYPE_DIR, conn->rend_query)) {
|
||||
log_fn(LOG_INFO,"Would fetch a new renddesc here (for %s), but one is already in progress.", conn->rend_query);
|
||||
} else {
|
||||
/* not one already; initiate a dir rend desc lookup */
|
||||
directory_initiate_command(router_pick_directory_server(),
|
||||
DIR_PURPOSE_FETCH_RENDDESC,
|
||||
|
||||
@@ -306,6 +306,13 @@ static void run_connection_housekeeping(int i, time_t now) {
|
||||
cell_t cell;
|
||||
connection_t *conn = connection_array[i];
|
||||
|
||||
if(conn->type == CONN_TYPE_DIR &&
|
||||
conn->timestamp_created + 5*60 > now) {
|
||||
log_fn(LOG_INFO,"Expiring wedged directory conn (purpose %d)", conn->purpose);
|
||||
connection_mark_for_close(conn,0);
|
||||
return;
|
||||
}
|
||||
|
||||
/* check connections to see whether we should send a keepalive, expire, or wait */
|
||||
if(!connection_speaks_cells(conn))
|
||||
return;
|
||||
|
||||
Reference in New Issue
Block a user