infrastructure for the 'change pseudonym' button.

not used yet.


svn:r5199
This commit is contained in:
Roger Dingledine 2005-10-05 22:31:21 +00:00
parent 92abf1b653
commit c3aac3ff6b
2 changed files with 22 additions and 0 deletions

View File

@ -567,6 +567,27 @@ circuit_mark_all_unused_circs(void)
} }
} }
/** Go through the circuitlist; for each circuit that starts at us
* and is dirty, frob its timestamp_dirty so we won't use it for any
* new streams.
*
* This is useful for letting the user change pseudonyms, so new
* streams will not be linkable to old streams.
*/
void
circuit_expire_all_dirty_circs(void)
{
circuit_t *circ;
or_options_t *options = get_options();
for (circ=global_circuitlist; circ; circ = circ->next) {
if (CIRCUIT_IS_ORIGIN(circ) &&
!circ->marked_for_close &&
circ->timestamp_dirty)
circ->timestamp_dirty -= options->MaxCircuitDirtiness;
}
}
/** Mark <b>circ</b> to be closed next time we call /** Mark <b>circ</b> to be closed next time we call
* circuit_close_all_marked(). Do any cleanup needed: * circuit_close_all_marked(). Do any cleanup needed:
* - If state is onionskin_pending, remove circ from the onion_pending * - If state is onionskin_pending, remove circ from the onion_pending

View File

@ -1417,6 +1417,7 @@ circuit_t *circuit_get_rendezvous(const char *cookie);
circuit_t *circuit_get_clean_open(uint8_t purpose, int need_uptime, circuit_t *circuit_get_clean_open(uint8_t purpose, int need_uptime,
int need_capacity, int internal); int need_capacity, int internal);
void circuit_mark_all_unused_circs(void); void circuit_mark_all_unused_circs(void);
void circuit_expire_all_dirty_circs(void);
void _circuit_mark_for_close(circuit_t *circ, int line, const char *file); void _circuit_mark_for_close(circuit_t *circ, int line, const char *file);
#define circuit_mark_for_close(c) \ #define circuit_mark_for_close(c) \