aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
Commit message (Collapse)AuthorAge
* Bug 8024: Check for null/closed channel before probing.Mike Perry2013-01-22
|
* squash! Remove a source of error during path bias scalingMike Perry2013-01-20
| | | | Improve debug logs and fix a state fencepost error.
* squash! Implement Path use bias accounting.Mike Perry2013-01-20
| | | | Make a debug log more informative.
* squash! Remove a source of error during path bias scalingMike Perry2013-01-20
| | | | Move a log message about scaling to after we scale
* Remove a source of error during path bias scalingMike Perry2013-01-18
| | | | | | | | If any circuits were opened during a scaling event, we were scaling attempts and successes by different amounts. This leads to rounding error. The fix is to record how many circuits are in a state that hasn't been fully counted yet, and subtract that before scaling, and add it back afterwords.
* Don't immediately count cannibalized circs as used.Mike Perry2013-01-18
| | | | | | | | | | | | | Since they use RELAY_EARLY (which can be seen by all hops on the path), it's not safe to say they actually count as a successful use. There are also problems with trying to allow them to finish extending due to the circuit purpose state machine logic. It is way less complicated (and possibly more semantically coherent) to simply wait until we actually try to do something with them before claiming we 'used' them. Also, we shouldn't call timed out circuits 'used' either, for semantic consistency.
* Implement Path use bias accounting.Mike Perry2013-01-18
| | | | | | | Path use bias measures how often we can actually succeed using the circuits we actually try to use. It is a subset of path bias accounting, but it is computed as a separate statistic because the rate of client circuit use may vary depending on use case.
* Rename *_isin to *_containsNick Mathewson2013-01-16
| | | | | | | | | | | This is an automatically generated commit, from the following perl script, run with the options "-w -i -p". s/smartlist_string_num_isin/smartlist_contains_int_as_string/g; s/smartlist_string_isin((?:_case)?)/smartlist_contains_string$1/g; s/smartlist_digest_isin/smartlist_contains_digest/g; s/smartlist_isin/smartlist_contains/g; s/digestset_isin/digestset_contains/g;
* Update the copyright date to 201.Nick Mathewson2013-01-16
|
* Clean up odds and endsRoger Dingledine2013-01-15
|
* Better log message to diagnose #7959Nick Mathewson2013-01-15
|
* Bug 7691 review fixes.Mike Perry2013-01-08
| | | | Also add in the random nonce generation.
* Bug 7691: Send a probe cell down certain types of circs.Mike Perry2013-01-08
| | | | | | | | In general, if we tried to use a circ for a stream, but then decided to place that stream on a different circuit, we need to probe the original circuit before deciding it was a "success". We also need to do the same for cannibalized circuits that go unused.
* Fix bug 7341.Mike Perry2013-01-08
| | | | Fix cannibalize, rend circ and intro circ timeout handling.
* Merge branch 'ntor-resquashed'Nick Mathewson2013-01-03
|\ | | | | | | | | | | | | Conflicts: src/or/cpuworker.c src/or/or.h src/test/bench.c
| * Complete all DOCDOC entries from the ntor branchNick Mathewson2013-01-03
| |
| * Enable the ntor handshake on the client side.Nick Mathewson2013-01-03
| | | | | | | | "works for me"
| * Don't check create cells too much when we're relaying themNick Mathewson2013-01-03
| | | | | | | | | | We want to sanity-check our own create cells carefully, and other people's loosely.
| * Use created_cell_format where appropriateNick Mathewson2013-01-03
| |
| * Use new wrappers for making,sending,processing create/extend cellsNick Mathewson2013-01-03
| |
| * Teach cpuworker and others about create_cell_t and friendsNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | The unit of work sent to a cpuworker is now a create_cell_t; its response is now a created_cell_t. Several of the things that call or get called by this chain of logic now take create_cell_t or created_cell_t too. Since all cpuworkers are forked or spawned by Tor, they don't need a stable wire protocol, so we can just send structs. This saves us some insanity, and helps p
| * Rename handshake_digest to rend_circ_nonceNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | The handshake_digest field was never meaningfully a digest *of* the handshake, but rather is a digest *from* the handshake that we exapted to prevent replays of ESTABLISH_INTRO cells. The ntor handshake will generate it as more key material rather than taking it from any part of the circuit handshake reply..
| * Massive refactoring of the various handshake typesNick Mathewson2013-01-03
| | | | | | | | | | The three handshake types are now accessed from a unified interface; their state is abstracted from the rest of the cpath state, and so on.
| * Refactor the CREATE_FAST handshake code to match the others.Nick Mathewson2013-01-03
| |
| * Split onion.[ch] into onion{,_fast,_tap}.[ch]Nick Mathewson2013-01-02
| | | | | | | | | | | | | | | | | | | | I'm going to want a generic "onionskin" type and set of wrappers, and for that, it will be helpful to isolate the different circuit creation handshakes. Now the original handshake is in onion_tap.[ch], the CREATE_FAST handshake is in onion_fast.[ch], and onion.[ch] now handles the onion queue. This commit does nothing but move code and adjust header files.
* | Fix whitespaceNick Mathewson2012-12-25
| |
* | Nick's Code review #3 part 2.Mike Perry2012-12-18
| |
* | Changes from Nick's code review 'part 1'Mike Perry2012-12-18
| | | | | | | | I think this is actually his third code review of this branch so far.
* | Tags on relay cells can result in certain reason codes.Mike Perry2012-12-11
| | | | | | | | | | Close the circuit (it's probably junk anyways), and make sure we don't probe it/count it as a success.
* | Woops, this log message triggers with the 2-hop bias commit.Mike Perry2012-12-11
| |
* | Add a missing comment.Mike Perry2012-12-10
| |
* | More log message and space fixups.Mike Perry2012-12-10
| |
* | Clean up some XXX comments.Mike Perry2012-12-09
| |
* | Space fixes.Mike Perry2012-12-09
| |
* | Fix a rather serious use-count state bug.Mike Perry2012-12-09
| | | | | | | | | | We need to use the success count or the use count depending on the consensus parameter.
* | Convert to doubles for all pathbias state.Mike Perry2012-12-09
| | | | | | | | Let's hope this solves the rounding error issue..
* | Also shorten circuit_successes to circ_successes.Mike Perry2012-12-09
| | | | | | | | | | | | For consistency and great justice. Ok, mostly consistency.
* | Rename first_hop to circ_attempt.Mike Perry2012-12-09
| | | | | | | | | | Since we've generalized what we can count from (first or second hop), we should generalize the variable and constant naming too.
* | Change from first hop accounting to 2nd hop accountingMike Perry2012-12-09
| | | | | | | | | | | | | | This has several advantages, including more resilience to ambient failure. I still need to rename all the first_hop vars tho.. Saving that for a separate commit.
* | Flag cannibalized circs as used (non-ideal).Mike Perry2012-12-09
| | | | | | | | Also add some comments.
* | Allow any valid 'end' cell to mean a circuit was used successfully.Mike Perry2012-12-08
| | | | | | | | Also improve some log messages.
* | Sadly, we can't safely count client intro circ successMike Perry2012-12-08
| |
* | Fix some hidden service edge cases.Mike Perry2012-12-08
| |
* | Refactor path use bias code into own function.Mike Perry2012-12-07
| | | | | | | | Also, improve and log some failure cases.
* | Fix another crash bug.Mike Perry2012-12-07
| |
* | Remove n_chan codepaths for determinining guard.Mike Perry2012-12-07
| | | | | | | | Cpath is apparently good enough.
* | Fix a crash due to NULL circ->n_chan.Mike Perry2012-12-07
| | | | | | | | | | Is this redundant? Can we always rely on circ->cpath->extend_info being present for origin circuits?
* | Prop 209: Add path bias counts for timeouts and other mechanisms.Mike Perry2012-12-07
| | | | | | | | | | | | | | Turns out there's more than one way to block a tagged circuit. This seems to successfully handle all of the normal exit circuits. Hidden services need additional tweaks, still.
* | Be explicit about units for timeout.Mike Perry2012-12-07
| |
* | Fix an assert crash and an incorrectly placed return.Mike Perry2012-12-07
| |