X remove per-connection rate limiting
- Make it harder to circumvent bandwidth caps: look at number of bytes
sent across sockets, not number sent inside TLS stream.
- - Audit users of connnection_remove and connection_free outside of
+ o Audit users of connnection_remove and connection_free outside of
main.c; many should use mark_for_close instead.
On-going
/* set up conn so it's got all the data we need to remember */
connection_or_init_conn_from_router(conn, router);
- /* XXXX Should all this stuff do mark-for-close instead? */
-
if(connection_add(conn) < 0) { /* no space, forget it */
connection_free(conn);
return NULL;
switch(connection_connect(conn, router->address, router->addr, router->or_port)) {
case -1:
- connection_remove(conn);
- connection_free(conn);
+ connection_mark_for_close(conn, 0);
return NULL;
case 0:
connection_set_poll_socket(conn);
return conn;
/* failure */
- connection_remove(conn);
- connection_free(conn);
+ connection_mark_for_close(conn, 0);
return NULL;
}
switch(connection_connect(conn, router->address, router->addr, router->dir_port)) {
case -1:
router_mark_as_down(conn->nickname); /* don't try him again */
- connection_remove(conn);
- connection_free(conn);
+ connection_mark_for_close(conn, 0);
return;
case 0:
connection_set_poll_socket(conn);
connection_set_poll_socket(conn);
if(directory_send_command(conn, command) < 0) {
- connection_remove(conn);
- connection_free(conn);
+ connection_mark_for_close(conn, 0);
}
}