[tor-commits] [tor/master] Merge remote-tracking branch 'origin/maint-0.2.4'
nickm at torproject.org
nickm at torproject.org
Tue Jun 18 14:25:57 UTC 2013
commit b5d1fded3dfa836ef1f45f6acb74971f75d5caa9
Merge: 2974c83 efa342f
Author: Nick Mathewson <nickm at torproject.org>
Date: Tue Jun 18 10:25:30 2013 -0400
Merge remote-tracking branch 'origin/maint-0.2.4'
changes/bug9002 | 4 ++
changes/bug9063_redux | 15 ++++++++
doc/tor.1.txt | 9 +++++
src/common/mempool.h | 2 +
src/or/circuitlist.c | 102 +++++++++++++++++++++++++++++++++++++++++++++++++
src/or/circuitlist.h | 1 +
src/or/config.c | 8 ++++
src/or/or.h | 4 ++
src/or/relay.c | 33 +++++++++++++++-
src/or/relay.h | 1 +
src/or/rendcommon.c | 25 +++++++++++-
11 files changed, 200 insertions(+), 4 deletions(-)
diff --cc src/or/circuitlist.h
index 94887d5,874f68c..03f678c
--- a/src/or/circuitlist.h
+++ b/src/or/circuitlist.h
@@@ -63,9 -61,7 +63,10 @@@ int circuit_count_pending_on_channel(ch
void assert_cpath_layer_ok(const crypt_path_t *cp);
void assert_circuit_ok(const circuit_t *c);
void circuit_free_all(void);
+ void circuits_handle_oom(size_t current_allocation);
+void channel_note_destroy_pending(channel_t *chan, circid_t id);
+void channel_note_destroy_not_pending(channel_t *chan, circid_t id);
+
#endif
diff --cc src/or/relay.c
index 38776bc,3138c5e..251d3ff
--- a/src/or/relay.c
+++ b/src/or/relay.c
@@@ -2597,8 -2534,14 +2620,14 @@@ append_cell_to_circuit_queue(circuit_t
}
#endif
- cell_queue_append_packed_copy(queue, cell, chan->wide_circ_ids);
+ cell_queue_append_packed_copy(queue, cell, chan->wide_circ_ids, 1);
+ if (PREDICT_UNLIKELY(cell_queues_check_size())) {
+ /* We ran the OOM handler */
+ if (circ->marked_for_close)
+ return;
+ }
+
/* If we have too many cells on the circuit, we should stop reading from
* the edge streams for a while. */
if (!streams_blocked && queue->n >= CELL_QUEUE_HIGHWATER_SIZE)
More information about the tor-commits
mailing list