diff options
author | Nick Mathewson <nickm@torproject.org> | 2013-03-21 14:51:27 -0400 |
---|---|---|
committer | Nick Mathewson <nickm@torproject.org> | 2013-06-13 10:14:00 -0400 |
commit | 43d53e6d86acaf7555c31730a8230fa0cdf31306 (patch) | |
tree | c12b3285f417aad70b913662006e8572edf708b6 /src/or/circuitmux.h | |
parent | 801eea03ad71dafd31cc6bfa06fa5e421aa95cd6 (diff) | |
download | tor-43d53e6d86acaf7555c31730a8230fa0cdf31306.tar.gz tor-43d53e6d86acaf7555c31730a8230fa0cdf31306.zip |
Implementation of a fix for bug 7912
I added the code to pass a destroy cell to a queueing function rather
than writing it immediately, and the code to remember that we
shouldn't reuse the circuit id until the destroy is actually sent, and
the code to release the circuit id once the destroy has been sent...
and then I finished by hooking destroy_cell_queue into the rest of
Tor.
Diffstat (limited to 'src/or/circuitmux.h')
-rw-r--r-- | src/or/circuitmux.h | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/src/or/circuitmux.h b/src/or/circuitmux.h index 25644ffab7..da62196b21 100644 --- a/src/or/circuitmux.h +++ b/src/or/circuitmux.h @@ -120,7 +120,8 @@ unsigned int circuitmux_num_circuits(circuitmux_t *cmux); unsigned int circuitmux_num_active_circuits(circuitmux_t *cmux); /* Channel interface */ -circuit_t * circuitmux_get_first_active_circuit(circuitmux_t *cmux); +circuit_t * circuitmux_get_first_active_circuit(circuitmux_t *cmux, + cell_queue_t **destroy_queue_out); void circuitmux_notify_xmit_cells(circuitmux_t *cmux, circuit_t *circ, unsigned int n_cells); @@ -132,5 +133,9 @@ void circuitmux_clear_num_cells(circuitmux_t *cmux, circuit_t *circ); void circuitmux_set_num_cells(circuitmux_t *cmux, circuit_t *circ, unsigned int n_cells); +void circuitmux_append_destroy_cell(channel_t *chan, + circuitmux_t *cmux, circid_t circ_id, + uint8_t reason); + #endif /* TOR_CIRCUITMUX_H */ |