summaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
AgeCommit message (Collapse)Author
2013-04-24Bug 8235: Fix scaling adjustments.Mike Perry
We need to subtract both the current built circuits *and* the attempted circuits from the attempt count during scaling, since *both* have already been counted there.
2013-04-03Fix a wide lineNick Mathewson
2013-04-03Add additional checks for Path Bias scaling.Mike Perry
Just in case more issues remain with scaling, it would be nice to pin-point them as such.
2013-03-29Bug #8196: Demote a path bias notice that can be caused by controllers.Mike Perry
We didn't see this in normal usage anyway.
2013-03-29Bug 8230: Mark circuits as opened before reachability testing.Mike Perry
Should silence two path bias Bug messages seen on relays at startup.
2013-03-27Add some missing case values to please clangNick Mathewson
It seems that some versions of clang that would prefer the -Wswitch-enum compiler flag to warn about switch statements with missing enum values, even if those switch statements have a default. Fixes bug 8598; bugfix on 0.2.4.10-alpha.
2013-03-26Bug 7065: Use $ for idhex instead of =Mike Perry
2013-03-18Merge remote-tracking branch 'public/bug6174' into maint-0.2.4Nick Mathewson
2013-03-18Merge remote-tracking branch 'public/no_dup_guards' into maint-0.2.4Nick Mathewson
2013-03-10Fix 8447: use %u to format circid_t.Nick Mathewson
Now that circid_t is 4 bytes long, the default integer promotions will leave it alone when sizeof(int) == 4, which will leave us formatting an unsigned as an int. That's technically undefined behavior. Fixes bug 8447 on bfffc1f0fc7616a25c32da2eb759dade4651659e. Bug not in any released Tor.
2013-02-19Rename circuit_expire_all_dirty_circsNick Mathewson
The new name is circuit_mark_all_dirty_circs_as_unusable. This resolves an XXX024
2013-02-19Downgrade an assert to LD_BUGNick Mathewson
This should prevent crashes on further recurrence of 8065, and help diagnose such if they occur
2013-02-15Merge remote-tracking branch 'public/wide_circ_ids'Nick Mathewson
Conflicts: src/or/channel.h src/or/connection_or.c src/or/cpuworker.c
2013-02-15Merge remote-tracking branch 'public/feature4994-rebased'Nick Mathewson
2013-02-14Be more robust when excluding existing nodes as new dirguardsNick Mathewson
In addition to rejecting them post-hoc, avoid picking them in the first place. This makes us less likely to decide that we can't add guards at all.
2013-02-12Restore the entry/dirguard distinction.Nick Mathewson
We shouldn't be calling choose_random_entry() for directory conncetions; that's what choose_random_dirguard() is for.
2013-02-11Avoid null-pointer deref in pathbias_is_new_circ_attemptNick Mathewson
Coverity is worried about this (CID 980653). It hasn't happened in testing, but we might as well make sure it can't happen.
2013-02-07Mention a trac ticket relevant to an XXX comment.Mike Perry
2013-02-07Better document an XXX comment about refactoring.Mike Perry
2013-02-07Separate the flags for logging use bias.Mike Perry
I think we want both sets of messages to appear independently to help us know what needs tuning.
2013-02-04Lower path use bias thresholds.Mike Perry
I noticed bad wifi networks can have low use success rates.
2013-02-04Reinstate some fixes/tweaks from 6e4a4002Nick Mathewson
These seem to have gotten conflicted out of existence while mike was working on path bias stuff. Thanks to sysrqb for collecting these in a handy patch.
2013-02-02generalize choose_random_entry()'s dirinfo parameterRoger Dingledine
Now we can specify to skip bridges that wouldn't be able to answer the type of dir fetch we're launching. It's still the responsibility of the rest of the code to prevent us from launching a given dir fetch if we have no bridges that could handle it.
2013-02-02use microdescriptors if *any* of our bridges can handle themRoger Dingledine
Now as we move into a future where most bridges can handle microdescs we will generally find ourselves using them, rather than holding back just because one of our bridges doesn't use them.
2013-02-01Fix a couple of warnings on the 8081 branch.Nick Mathewson
2013-02-01Increment an informational counter for use failed state.Mike Perry
This informational counter is probably now redundant, but might as well keep it consistent I guess.
2013-02-01Fix a log typo found by sysrqb.Mike Perry
2013-02-01Refactor code that rolls back the use stateMike Perry
Also document it better. Mention this refactoring in the comments for the path state machine.
2013-02-01Refactor and rename pathbias rate evaluation.Mike Perry
2013-02-01Refactor the scaling parameter fetching into a single function.Mike Perry
Also, deprecate the torrc options for the scaling values. It's unlikely anyone but developers will ever tweak them, even if we provided a single ratio value.
2013-02-01Mark entry guard state dirty everwhere the pathbias code touches it.Mike Perry
2013-02-01Add a tristate to guard against unexpected circ purpose transitionsMike Perry
2013-02-01Clarify state transition and related pathbias commentsMike Perry
2013-01-22Bug 8024: Check for null/closed channel before probing.Mike Perry
2013-01-20squash! Remove a source of error during path bias scalingMike Perry
Improve debug logs and fix a state fencepost error.
2013-01-20squash! Implement Path use bias accounting.Mike Perry
Make a debug log more informative.
2013-01-20squash! Remove a source of error during path bias scalingMike Perry
Move a log message about scaling to after we scale
2013-01-18Remove a source of error during path bias scalingMike Perry
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.
2013-01-18Don't immediately count cannibalized circs as used.Mike Perry
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.
2013-01-18Implement Path use bias accounting.Mike Perry
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.
2013-01-16Rename *_isin to *_containsNick Mathewson
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;
2013-01-16Update the copyright date to 201.Nick Mathewson
2013-01-15Clean up odds and endsRoger Dingledine
2013-01-15Better log message to diagnose #7959Nick Mathewson
2013-01-08Bug 7691 review fixes.Mike Perry
Also add in the random nonce generation.
2013-01-08Bug 7691: Send a probe cell down certain types of circs.Mike Perry
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.
2013-01-08Fix bug 7341.Mike Perry
Fix cannibalize, rend circ and intro circ timeout handling.
2013-01-03Merge branch 'ntor-resquashed'Nick Mathewson
Conflicts: src/or/cpuworker.c src/or/or.h src/test/bench.c
2013-01-03Complete all DOCDOC entries from the ntor branchNick Mathewson
2013-01-03Enable the ntor handshake on the client side.Nick Mathewson
"works for me"