aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2012-10-10Implement circuitmux_attached_circuit_direction(), ↵Andrea Shepard
circuitmux_find_map_entry() and circuitmux_is_circuit_attached() in circuitmux.c
2012-10-10Implement circuitmux_attach_circuit() in circuitmux.cAndrea Shepard
2012-10-10Implement circuitmux_alloc()/circuitmux_free() and chanid/circid->muxinfo ↵Andrea Shepard
hash table
2012-10-10Use circuitmux_t in channels and when relaying cellsAndrea Shepard
2012-10-10Add circuitmux.c, circuitmux.hAndrea Shepard
2012-10-09Add magic number for type-checking channel castsAndrea Shepard
2012-10-09Improve comments on channel_write_*()Andrea Shepard
2012-10-09Use cell_queue_entry_new/free() functions in channel.cAndrea Shepard
2012-10-09Set reason_for_closing when erroring out of channel_tls_connect()Andrea Shepard
2012-10-09Split channel_t into channel_t and channel_listener_t; get rid of that big unionAndrea Shepard
2012-10-08Conform to existing Doxygen styleAndrea Shepard
2012-10-08Refactor ↵Andrea Shepard
channel_write_cell()/channel_write_packed_cell()/channel_write_var_cell() to eliminate redundant code
2012-10-08Use typedefs for function pointer return values and s/listener/listener_fn/ ↵Andrea Shepard
for distinctness
2012-10-08s/cell_queue/incoming_queue/g in channel.c for consistency with outgoing_queueAndrea Shepard
2012-10-08Fix typo in commentAndrea Shepard
2012-10-08s/channel_request_close()/channel_mark_for_close()/g for consistencyAndrea Shepard
2012-10-08Make channel_force_free() staticAndrea Shepard
2012-10-08Simplify channel_next_with_digest() in channel.cAndrea Shepard
2012-10-08Eliminate unnecessary channel_set_cell_handler(), ↵Andrea Shepard
channel_set_var_cell_handler() in channel.c
2012-10-08Eliminate unnecessary SMARTLIST_DEL_CURRENT() invocations in channel.c, ↵Andrea Shepard
channeltls.c
2012-10-08Remove orphaned comment in channel_flush_some_cells_from_outgoing_queue()Andrea Shepard
2012-10-08Simplify channel_find_by_remote_digest()Andrea Shepard
2012-10-08Abolish superfluous channel_find_by_remote_nickname()Andrea Shepard
2012-10-08channel_free() should be a no-opAndrea Shepard
2012-10-08Use U64_FORMAT/U64_PRINTF_ARG rather than %lu for channel_tAndrea Shepard
2012-10-08Check return value from connection_or_connect() in channel_tls_connect()Andrea Shepard
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-08Add changes file for channels (ticket 6465)Andrea Shepard
2012-10-08Keep better statistics about channels and dump them from dumpstats() on SIGUSR1Andrea Shepard
2012-10-08Call channel_tls_free_all() and channel_free_all() from tor_free_all in main.cAndrea Shepard
2012-10-08Call connection_or_close_normally() rather than using ↵Andrea Shepard
connection_mark_for_close()/connection_mark_and_flush() in run_connection_housekeeping() of main.c so that channels get sent to the CLOSING state correctly (avoids an assert otherwise)
2012-10-08Call channel_run_cleanup() in main.c, and include a comment explaining how ↵Andrea Shepard
closing or_connections related to channels
2012-10-08Add LD_CHANNEL log domain in log.cAndrea Shepard
2012-10-08Use channel_is_bad_for_new_circs(), connection_or_get_num_circs() in main.cAndrea Shepard
2012-10-08Use connection_or_get_num_circuits() in control.cAndrea Shepard
2012-10-08Convert rendmid.c to channel_tAndrea Shepard
2012-10-08Use dirreq_id from channel_t when appropriateAndrea Shepard
2012-10-08Switch onion.c over to channel_tAndrea Shepard
2012-10-08Use channel_t in cpuworker.cAndrea Shepard
Note: this is a squashed commit; see branch bug6465_rebased_v2 of user/andrea/tor.git for full history of the following 2 commits: Use channel_t in cpuworker.c Fix bug in channel_t usage in cpuworker.c that was killing relaying on channel_t-ized Tor. The tags passed to the worker now have a channel ID, not a connection ID.
2012-10-08Query circuit count from associated channel of or_conn in control.cAndrea Shepard
2012-10-08Make reachabiity test in dirserv.c use channel_tAndrea Shepard
2012-10-08Convert relay.c/relay.h to channel_tAndrea Shepard
Note: this is a squashed commit; see branch bug6465_rebased_v2 of user/andrea/tor.git for full history of the following 10 commits: Convert relay.c/relay.h to channel_t Updating the timestamp if n_flushed > 0 at the end of channel_flush_from_first_active_circuit() was redundant since channel_write_cell() et al. do it themselves. Get rid of now-unnecessary time parameter in channel_flush_from_first_active_circuit() Get rid of now-unnecessary time parameter in channel_flush_from_first_active_circuit() in connection_or.c Add non-inlined external call for channeltls.c to free a packed_cell_t Appease make check-spaces in relay.c Replace channel_get_write_queue_len() with sufficient and easier to implement channel_has_queued_writes() in relay.c Rename channel_touched_by_client() and client_used field for consistency with other timestamps in relay.c Don't double-free packed cells in relay.c (channel_t Tor now bootstraps and works as a client) Rearrange channel_t struct to use a union distinguishing listener from cell-bearing channels in relay.c
2012-10-08Support channel_t in connection_edge.cAndrea Shepard
2012-10-08Use channel_t in cmd.cAndrea Shepard
2012-10-08Use channel_t rather than or_connection_t for circuitsAndrea Shepard
2012-10-08Initial channeltls.c/channeltls.h for bug 6465Andrea Shepard
2012-10-08Fix make check-spaces in circuitbuild.c and router.hAndrea Shepard
2012-10-08Add channel.c/channel.h for bug 6465Andrea Shepard
Note: this is a squashed commit; see branch bug6465_rebased_v2 of user/andrea/tor.git for full history of the following 90 commits: Add channel.c/channel.h for bug 6465 Fix make check-spaces in new channel.c/channel.h Make sure new channel.h is in nodist_HEADERS and Makefile.nmake is up to date too Add channel_state_t and state utility functions Add channel_change_state() Better comments in channel.h Add CHANNEL_STATE_LISTENING for channel_t Fix wide line in channel.c Add structures/prototypes for incoming cell handling Implement channel_queue_cell() and channel_queue_var_cell() Implement channel_process_cells() Fix asserts in channel_queue_cell() and channel_queue_var_cell() Add descriptive comments for channel_queue_cell() and channel_queue_var_cell() Implement channel cell handler getters/setters Queue outgoing writes when not in writeable state Drain queues and test assertions when changing channel_t state Add log_debug() messages for channel_t stuff Add log_debug() messages for channel_t stuff Add some channel_t metadata Add time_t client_used to channel_t Add channel_touched_by_client() Declare a few channel_t metadata queries we'll have to implement later for use by circuitbuild.c Add next_circ_id/circ_id_type to channel_t for use by circuitbuild.c Count n_circuits in channel_t Channel timestamp calls Add create timestamp for channel.h Declare some new metadata queries on channel_t Add get_real_remote_descr() prototype Move active_circuits stuff to channel_t, some other or.h and channel.h changes Make channel_t refcounted and use global lists of active channels Update channel_request_close() and channel_change_state() for channel_t registration mechanism Handle closing channels sensibly Add global_identifier for channels, channel_init() internal use function Add timestamp_last_added_nonpadding to channel_t Better comments in channel_init() Correctly handle next_circ_id in channel_init() Correctly handle next_circ_id in channel_init() and even compile this time Appease make check-spaces Update timestamps when writing cells to channel_t Add channel_flush_some_cells() to call channel_flush_from_first_active_circuit() Add registered channel lookup functions Get rid of client_used in or_connection_t; it's in channel_t now Get rid of circ_id_type in or_connection_t; implement channel_set_circ_id_type() Eliminate is_bad_for_new_circs in or_connection_t; implement getter/setter for it in channel_t Eliminate next_circ_id in or_connection_t in favor of channel_t Handle packed cells in channel_t for relay.c Add channel_identity_map and related functions Handle add/remove from channel identity map on state transitions Implement channel_is_local() and channel_mark_local() Implement channel_is_client() and channel_mark_client() Implement channel_is_outgoing() and channel_mark_outgoing() Eliminate declaration for redundant channel_nonopen_was_started_here() Add channel timestamps Add channel timestamps, fix some make-check-spaces complaints Remove redundant channel_was_started_here() function and initiated_remotely bit Rename channel_get_remote_descr()/channel_get_real_remote_descr() to something clearer in channel.h Replace channel_get_write_queue_len() with sufficient and easier to implement channel_has_queued_writes() in channel.h Change return type of channel_is_bad_for_new_circs() to int for consistency Implement channel_has_queued_writes() Rename channel_touched_by_client() and client_used field for consistency with other timestamps in channel.{c,h} Implement channel_get_actual_remote_descr() and channel_get_canonical_remote_descr() in channel.{c,h} Implement channel_matches_extend_info() in channel.{c,h} Implement channel_get_for_extend() and channel_is_better() in channel.{c,h} Make channel_is_better() public in channel.{c,h} Implement channel_matches_target_addr_for_extend() in channel.{c,h} Implement channel_is_canonical_is_reliable() in channel.{c,h} Demoronize get_remote_descr() method prototype - what the hell was I thinking there? Timestamp channels in the right places in channel.c Add missing tor_assert() in channel.c Check if the lower layer accepted a cell in channel_write_cell() et al. of channel.c Implement channel_flush_cells() in channel.c (w00t, it builds at last) Call channel_timestamp_drained() at the right places in channel.c Implement channel_run_cleanup() Support optional channel_get_remote_addr() method and use it for GeoIP in channel_do_open_actions() Get rid of channel refcounting; it'll be too complicated to handle it properly with all the pointers from circuits to channels, and closing from channel_run_cleanup() will work okay just like with connections Doxygenate channel.c Appease make check-spaces in channel.c Fix superfluous semicolons in channel.c Add/remove channels from identity digest map in all the right places in channel.c The cell queues on channel_t must be empty when going to a CLOSED or ERROR state Appease make check-spaces in channel.c Add channel_clear/set_identity_digest() and some better logging to channel.{c,h} Fix better logging to channel.c Avoid SIGSEGV testing for queue emptiness in channel_flush_some_cells_from_outgoing_queue() Remove TODO about checking cell queue in channel_free(); no need for it Appease make check-spaces in channel.c Add channel_free_all() and support functions Check nullness of active_circuit_pqueue in channel_free() Fix SMARTLIST_FOREACH_END usage in channel_process_cells() Rearrange channel_t struct to use a union distinguishing listener from cell-bearing channels in channel.{c,h}
2012-10-04Merge remote-tracking branch 'public/openssl_1_is_best'Nick Mathewson
2012-10-04Merge remote-tracking branch 'origin/maint-0.2.3'Nick Mathewson
2012-10-04Merge remote-tracking branch 'arma/bug7037' into maint-0.2.3Nick Mathewson