-
- Downloads
Stop frobbing timestamp_dirty as our sole means to mark circuits unusable
In a number of places, we decrement timestamp_dirty by MaxCircuitDirtiness in order to mark a stream as "unusable for any new connections. This pattern sucks for a few reasons: * It is nonobvious. * It is error-prone: decrementing 0 can be a bad choice indeed. * It really wants to have a function. It can also introduce bugs if the system time jumps backwards, or if MaxCircuitDirtiness is increased. So in this patch, I add an unusable_for_new_conns flag to origin_circuit_t, make it get checked everywhere it should (I looked for things that tested timestamp_dirty), and add a new function to frob it. For now, the new function does still frob timestamp_dirty (after checking for underflow and whatnot), in case I missed any cases that should be checking unusable_for_new_conns. Fixes bug 6174. We first used this pattern in 516ef41a, which I think was in 0.0.2pre26 (but it could have been 0.0.2pre27).
Showing
- changes/bug6174 6 additions, 0 deletionschanges/bug6174
- src/or/circuitlist.c 4 additions, 5 deletionssrc/or/circuitlist.c
- src/or/circuituse.c 33 additions, 3 deletionssrc/or/circuituse.c
- src/or/circuituse.h 1 addition, 0 deletionssrc/or/circuituse.h
- src/or/connection_edge.c 6 additions, 12 deletionssrc/or/connection_edge.c
- src/or/or.h 4 additions, 0 deletionssrc/or/or.h
- src/or/relay.c 2 additions, 3 deletionssrc/or/relay.c
Loading
Please register or sign in to comment