aboutsummaryrefslogtreecommitdiff
path: root/src/or
Commit message (Collapse)AuthorAge
* Query circuit count from associated channel of or_conn in control.cAndrea Shepard2012-10-08
|
* Make reachabiity test in dirserv.c use channel_tAndrea Shepard2012-10-08
|
* Convert relay.c/relay.h to channel_tAndrea Shepard2012-10-08
| | | | | | | | | | | | | | | 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
* Support channel_t in connection_edge.cAndrea Shepard2012-10-08
|
* Use channel_t in cmd.cAndrea Shepard2012-10-08
|
* Use channel_t rather than or_connection_t for circuitsAndrea Shepard2012-10-08
|
* Initial channeltls.c/channeltls.h for bug 6465Andrea Shepard2012-10-08
|
* Fix make check-spaces in circuitbuild.c and router.hAndrea Shepard2012-10-08
|
* Add channel.c/channel.h for bug 6465Andrea Shepard2012-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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}
* Merge remote-tracking branch 'origin/maint-0.2.3'Nick Mathewson2012-10-04
|\
| * Merge remote-tracking branch 'arma/bug7037' into maint-0.2.3Nick Mathewson2012-10-04
| |\
| | * Refuse extra create cells with reason "resource limit"Roger Dingledine2012-10-03
| | | | | | | | | | | | | | | In the past we had used reason "internal", which is more vague than it needs to be. Resolves bug 7037.
* | | Fix tabs in config.cNick Mathewson2012-10-04
| | |
* | | Merge remote-tracking branch 'linus/bug6757'Nick Mathewson2012-10-04
|\ \ \
| * | | Have node_get_pref_orport() return an IPv6 OR port when UseBridges is set.Linus Nordberg2012-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to never return an IPv6 address unless ClientUseIPv6 was set. We should allow clients running with bridges use IPv6 OR ports even without setting ClientUseIPv6. Configuring an IPv6 address in a Bridge line should imply that. Fixes th second part of #6757.
| * | | Set (and reset) node_t.ipv6_preferred for bridges based on Bridge lines.Linus Nordberg2012-09-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We used to set it only when ClientPreferIPv6ORPort was set which seems wrong. Fixes one part of #6757.
* | | | Merge remote-tracking branch 'origin/maint-0.2.3'Nick Mathewson2012-10-04
|\ \ \ \ | | |/ / | |/| |
| * | | properly free the return values of rate_limit_log()Roger Dingledine2012-10-03
| | |/ | |/| | | | | | | resolves bug 7022.
* | | pass the reason from the truncated cell to the controllerRoger Dingledine2012-10-03
| | | | | | | | | | | | | | | | | | | | | (rather than just always declaring that the reason is END_CIRC_REASON_OR_CONN_CLOSED) resolves bug 7039.
* | | actually use the rate-limiting stringRoger Dingledine2012-10-03
| | | | | | | | | | | | previously we just allocated the string and then freed it.
* | | reformat; no actual changesRoger Dingledine2012-10-02
| | |
* | | and make the last commit compileRoger Dingledine2012-10-02
| | |
* | | Fix compilation error left over from 1cbf45bed1. (Bug 7021)Nick Mathewson2012-10-02
| | |
* | | more consistently use [gs]et_uint8Roger Dingledine2012-10-02
| | |
* | | The --version option should imply --quiet.Nick Mathewson2012-10-01
| | | | | | | | | | | | Patch from 'maker'.
* | | Add missing declaration so 6876 compilesNick Mathewson2012-09-28
| | |
* | | Merge remote-tracking branch 'linus/enh6876_2'Nick Mathewson2012-09-28
|\ \ \
| * | | Make option OutboundBindAddress accept IPv6 addresses too.Linus Nordberg2012-09-20
| | |/ | |/| | | | | | | Implements ticket 6786.
* | | Merge remote-tracking branch 'rransom/warn-about-hses-without-guards'Nick Mathewson2012-09-25
|\ \ \
| * | | Fix comment typoRobert Ransom2012-09-18
| | | |
| * | | Warn if HSes are configured on a client with UseEntryGuards disabledRobert Ransom2012-09-18
| |/ /
* | | Merge branch 'maint-0.2.3'Roger Dingledine2012-09-22
|\ \ \ | | |/ | |/|
| * | add faravahar as our ninth v3 dir authRoger Dingledine2012-09-22
| | |
* | | Remove the testing_since* fieldsNick Mathewson2012-09-21
| | | | | | | | | | | | | | | | | | They weren't actually used since 7a35dad00 Bug 5809
* | | add changes file and whitespace fixes for bug 4020Nick Mathewson2012-09-21
| | |
* | | Reinstate address in warning message when binding non-locallyTom Fitzhenry2012-09-21
| | | | | | | | | | | | | | | | | | bug4020 Signed-off-by: Tom Fitzhenry <tom@tom-fitzhenry.me.uk>
* | | Don't leak msg when parse_virtual_addr_network() fails.Linus Nordberg2012-09-20
| |/ |/|
* | Correct comment explaining why tor2web mode should disable entry guardsRobert Ransom2012-09-18
| |
* | Disable Guard usage for Tor2webMode.Mike Perry2012-09-18
| | | | | | | | | | Tor2webMode is fingerprintable by hidden services through repeated usage of the same three guard nodes for its rend and intro points.
* | Bump bug 6866 log messages back up to notice for 0.2.4Nick Mathewson2012-09-18
| |
* | Merge remote-tracking branch 'origin/maint-0.2.3'Nick Mathewson2012-09-18
|\|
| * Whitespace fixesNick Mathewson2012-09-18
| |
| * Bug 6866: Convert pathbias asserts into log messages.Mike Perry2012-09-17
| | | | | | | | Asserts were hit by Tor2Web mode.
* | Print the correct address family in log printout.Linus Nordberg2012-09-18
| | | | | | | | | | | | | | | | Look at the address family of the preferred OR port rather than the node.ipv6_preferred flag since the logic has changed with new ClientUseIPv6 config option. Fixes ticket 6884.
* | Merge remote-tracking branch 'linus/bug6880'Nick Mathewson2012-09-17
|\ \
| * | Don't do reachability testing over IPv6 unless AuthDirPublishIPv6 is set.Linus Nordberg2012-09-17
| | | | | | | | | | | | This affects both directory authorities and bridge authoritites.
* | | Implement and use crypto_pk_eq_keysRobert Ransom2012-09-17
| | |
* | | Merge remote-tracking branch 'public/bug6853'Nick Mathewson2012-09-17
|\ \ \
| * | | Parse votes with >31 flags correctlyNick Mathewson2012-09-17
| | |/ | |/| | | | | | | | | | | | | | | | We were doing (1<<p) to generate a flag at position p, but we should have been doing (U64_LITERAL(1)<<p). Fixes bug 6861; bugfix on 0.2.0.3-alpha; reported pseudonymously.
* | | Avoid sign-extending when computing rend auth type.Nick Mathewson2012-09-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right-shifting negative values has implementation-defined behavior. On all the platforms we work on right now, the behavior is to sign-extend the input. That isn't what we wanted in auth_type_val = (descriptor_cookie_tmp[16] >> 4) + 1; Fix for 6861; bugfix on 0.2.1.5-alpha; reported pseudonymously. The broken behavior didn't actually hurt anything, I think, since the only way to get sign-extension to happen would be to have the top bit of descriptor_cookie_tmp[16] set, which would make the value of descriptor_cookie_tmp[16] >> 4 somewhere between 0b11111111 and 0b11111000 (that is, between -1 and -8). So auth_type_val would be between -7 and 0. And the immediate next line does: if (auth_type_val < 1 || auth_type_val > 2) { So the incorrectly computed auth_type_val would be rejected as invalid, just as a correctly computed auth_type_val would be. Still, this stuff shouldn't sit around the codebase.