Andrea Shepard
d194b8602a
Remove cell_ewma_t from or.h and from circuit_t/or_circuit_t; all that goes to the new circuitmux_ewma.c now
2012-10-10 00:44:46 -07:00
Andrea Shepard
5f9d37e74e
Add circuitmux.h, circuitmux_ewma.h includes now necessary in config.c
2012-10-10 00:44:46 -07:00
Andrea Shepard
14fe0d5859
Remove EWMA code from relay.{c,h}; it goes to a circuitmux policy now
2012-10-10 00:44:46 -07:00
Andrea Shepard
b7d5784c54
Remove ewma setup code in init_circuit_base()/or_circuit_new() of circuitlist.c; it gets allocated when the circuit is attached to a circuitmux_t with that policy now
2012-10-10 00:44:46 -07:00
Andrea Shepard
e1de2f1437
Add upcasts for circuitmux_policy_data_t and circuitmux_policy_circ_data_t to circuitmux.h
2012-10-10 00:44:46 -07:00
Andrea Shepard
184560c4f6
Add initial circuitmux_ewma.{c,h}
2012-10-10 00:44:46 -07:00
Andrea Shepard
34591c61ef
Implement circuitmux_assert_okay() and helper functions in circuitmux.c
2012-10-10 00:44:46 -07:00
Andrea Shepard
4a14c6aa67
Implement circuitmux_get_first_active_circuit() in circuitmux.c; add pick_active_circuit() to circuitmux_policy_t in circuitmux.h
2012-10-10 00:44:46 -07:00
Andrea Shepard
c4e5e4727d
Add comment for circuitmux_notify_xmit_cells() in circuitmux.c
2012-10-10 00:44:46 -07:00
Andrea Shepard
741bc97b24
Add comment for circuitmux_move_active_circ_to_tail() in circuitmux.c
2012-10-10 00:44:46 -07:00
Andrea Shepard
aff77eb1a9
Implement circuitmux_notify_xmit_cells() and circuitmux_move_active_circ_to_tail() helper in circuitmux.c
2012-10-10 00:44:46 -07:00
Andrea Shepard
debef8f0cd
Consistently allow policy alloc_cmux_data() and alloc_circ_data() functions to return NULL if the policy does not use this in circuitmux.c
2012-10-10 00:44:46 -07:00
Andrea Shepard
86d9d85dfc
Implement circuitmux_clear_policy(), circuitmux_get_policy() and circuitmux_set_policy() in circuitmux.c
2012-10-10 00:44:45 -07:00
Andrea Shepard
eade7a37cd
Add cmux policy notify_set_n_cells() and notify_xmit_cells() callbacks
2012-10-10 00:44:45 -07:00
Andrea Shepard
930e3d611a
Allocate and free circuit-specific policy data in the right places
2012-10-10 00:44:45 -07:00
Andrea Shepard
851734d324
Implement circuitmux policy basic notifications mechanism
2012-10-10 00:44:45 -07:00
Andrea Shepard
35f5259df4
Eliminate linked list helper functions in relay.c which are no longer used
2012-10-10 00:44:45 -07:00
Andrea Shepard
38fa3b7e44
Implement circuitmux_make_circuit_inactive(), circuitmux_make_circuit_active() and linked list helper functions in circuitmux.c
2012-10-10 00:44:45 -07:00
Andrea Shepard
fd31dd440c
Implement circuitmux_detach_all_circuits() in circuitmux.c
2012-10-10 00:43:18 -07:00
Andrea Shepard
9da04141e2
Implement circuitmux_is_circuit_active(), circuitmux_num_cells_for_circuit(), circuitmux_num_cells(), circuitmux_num_active_circuits() and circuitmux_num_circuits() in circuitmux.c
2012-10-10 00:43:18 -07:00
Andrea Shepard
a9deec3550
Implement circuitmux_clear_num_cells() and circuitmux_set_num_cells() in circuitmux.c, remove unneeded circuitmux_add_to_num_cells() from circuitmux.h
2012-10-10 00:43:18 -07:00
Andrea Shepard
8004448635
Handle n_mux/p_mux properly in circuitmux.c
2012-10-10 00:43:18 -07:00
Andrea Shepard
c3ebd0340c
Implement circuitmux_detach_circuit() in circuitmux.c
2012-10-10 00:43:17 -07:00
Andrea Shepard
7e5c358d38
Implement circuitmux_attached_circuit_direction(), circuitmux_find_map_entry() and circuitmux_is_circuit_attached() in circuitmux.c
2012-10-10 00:41:55 -07:00
Andrea Shepard
3c41d7f414
Implement circuitmux_attach_circuit() in circuitmux.c
2012-10-10 00:41:49 -07:00
Andrea Shepard
e4a11b890e
Implement circuitmux_alloc()/circuitmux_free() and chanid/circid->muxinfo hash table
2012-10-10 00:40:10 -07:00
Andrea Shepard
b208539b80
Use circuitmux_t in channels and when relaying cells
2012-10-10 00:40:06 -07:00
Andrea Shepard
c684076fc7
Add circuitmux.c, circuitmux.h
2012-10-10 00:39:11 -07:00
Andrea Shepard
bddfb9ffa8
Add magic number for type-checking channel casts
2012-10-09 23:19:53 -07:00
Andrea Shepard
f00b44ef8c
Improve comments on channel_write_*()
2012-10-09 23:19:53 -07:00
Andrea Shepard
1c3362dcdc
Use cell_queue_entry_new/free() functions in channel.c
2012-10-09 23:19:53 -07:00
Andrea Shepard
53454fad95
Set reason_for_closing when erroring out of channel_tls_connect()
2012-10-09 23:19:53 -07:00
Andrea Shepard
3f4b95b1a3
Split channel_t into channel_t and channel_listener_t; get rid of that big union
2012-10-09 23:19:53 -07:00
Andrea Shepard
6391f963fb
Conform to existing Doxygen style
2012-10-08 21:30:07 -07:00
Andrea Shepard
06a76d1db4
Refactor channel_write_cell()/channel_write_packed_cell()/channel_write_var_cell() to eliminate redundant code
2012-10-08 21:16:59 -07:00
Andrea Shepard
89a00ee63a
Use typedefs for function pointer return values and s/listener/listener_fn/ for distinctness
2012-10-08 20:49:19 -07:00
Andrea Shepard
ee4e88e4d9
s/cell_queue/incoming_queue/g in channel.c for consistency with outgoing_queue
2012-10-08 20:20:28 -07:00
Andrea Shepard
4686638743
Fix typo in comment
2012-10-08 20:15:09 -07:00
Andrea Shepard
d61e58e1ba
s/channel_request_close()/channel_mark_for_close()/g for consistency
2012-10-08 20:14:04 -07:00
Andrea Shepard
8a41dd20cb
Make channel_force_free() static
2012-10-08 20:10:13 -07:00
Andrea Shepard
123a08e4a3
Simplify channel_next_with_digest() in channel.c
2012-10-08 20:08:18 -07:00
Andrea Shepard
e877d02fdd
Eliminate unnecessary channel_set_cell_handler(), channel_set_var_cell_handler() in channel.c
2012-10-08 20:06:40 -07:00
Andrea Shepard
17356fe7fd
Eliminate unnecessary SMARTLIST_DEL_CURRENT() invocations in channel.c, channeltls.c
2012-10-08 20:02:42 -07:00
Andrea Shepard
bb92a2d7a8
Remove orphaned comment in channel_flush_some_cells_from_outgoing_queue()
2012-10-08 19:54:47 -07:00
Andrea Shepard
341928c807
Simplify channel_find_by_remote_digest()
2012-10-08 19:53:05 -07:00
Andrea Shepard
965c9de498
Abolish superfluous channel_find_by_remote_nickname()
2012-10-08 19:52:04 -07:00
Andrea Shepard
64e6f6687c
channel_free() should be a no-op
2012-10-08 19:50:41 -07:00
Andrea Shepard
e709fe320a
Use U64_FORMAT/U64_PRINTF_ARG rather than %lu for channel_t
2012-10-08 19:48:06 -07:00
Andrea Shepard
71ba517e0c
Check return value from connection_or_connect() in channel_tls_connect()
...
It's possible for connection_or_connect() to fail and return NULL after it
sets tlschan->conn, so not checking leaves a channel hanging around in
CHANNEL_STATE_OPENING with a pointer to a freed or_connection_t forever.
2012-10-08 18:24:04 -07:00
Andrea Shepard
b1b33f15be
Add changes file for channels (ticket 6465)
2012-10-08 03:06:09 -07:00