aboutsummaryrefslogtreecommitdiff
path: root/src/or/circuitbuild.c
Commit message (Collapse)AuthorAge
* Try to diagnose bug 12184Nick Mathewson2014-06-14
| | | | | | | Check for consistency between the queued destroy cells and the marked circuit IDs. Check for consistency in the count of queued destroy cells in several ways. Check to see whether any of the marked circuit IDs have somehow been marked longer than the channel has existed.
* Basic tests for get_unique_circ_id_by_chan.Nick Mathewson2014-05-07
|
* Merge branch 'scanbuild_fixes'Nick Mathewson2014-04-25
|\
| * scan-build: circuit_cpath_support_ntor had a dead initializationNick Mathewson2014-04-18
| | | | | | | | We were initializing cpath twice, which doesn't make sense.
* | whitespace fixNick Mathewson2014-04-24
| |
* | Merge remote-tracking branch 'public/bug11553_024' into bug11553_025Nick Mathewson2014-04-23
|\ \ | | | | | | | | | | | | Conflicts: src/or/circuitbuild.c
| * | Improvements to #11553 fix based on reviewNick Mathewson2014-04-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use a per-channel ratelim_t to control the rate at which we report failures for each channel. Explain why I picked N=32. Never return a zero circID. Thanks to Andrea and to cypherpunks.
* | | Merge remote-tracking branch 'public/bug11553_024' into bug11553_025Nick Mathewson2014-04-18
|\| |
| * | Add a rate-limiter for the other circuitID exhaustion warningNick Mathewson2014-04-18
| | |
* | | Diagnostic warning to see if it's pending destroys causing 11553Nick Mathewson2014-04-18
| | |
* | | Merge remote-tracking branch 'public/bug11553_024' into bug11553_025Nick Mathewson2014-04-18
|\| | | |/ |/| | | | | Conflicts: src/or/channel.h
| * Switch to random allocation on circuitIDs.Nick Mathewson2014-04-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes a possible root cause of 11553 by only making 64 attempts at most to pick a circuitID. Previously, we would test every possible circuit ID until we found one or ran out. This algorithm succeeds probabilistically. As the comment says: This potentially causes us to give up early if our circuit ID space is nearly full. If we have N circuit IDs in use, then we will reject a new circuit with probability (N / max_range) ^ MAX_CIRCID_ATTEMPTS. This means that in practice, a few percent of our circuit ID capacity will go unused. The alternative here, though, is to do a linear search over the whole circuit ID space every time we extend a circuit, which is not so great either. This makes new vs old clients distinguishable, so we should try to batch it with other patches that do that, like 11438.
| * Supply better and less frequent warnings on circID exhaustionNick Mathewson2014-04-18
| | | | | | | | Fixes the surface behavior of #11553
* | Merge remote-tracking branch 'arma/ticket5528'Nick Mathewson2014-03-05
|\ \ | | | | | | | | | | | | | | | Conflicts: src/or/router.c src/test/test_dir.c
| * | use router->addr for log messages and controller eventsRoger Dingledine2013-02-09
| | | | | | | | | | | | (rather than router->address)
* | | Merge remote-tracking branch 'public/feature9777_024_squashed'Nick Mathewson2014-02-07
|\ \ \ | | |/ | |/| | | | | | | Conflicts: src/or/circuitbuild.c
| * | Discard circuit paths on which nobody supports ntorNick Mathewson2014-02-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now this accounts for about 1% of circuits over all, but if you pick a guard that's running 0.2.3, it will be about 6% of the circuits running through that guard. Making sure that every circuit has at least one ntor link means that we're getting plausibly good forward secrecy on every circuit. This implements ticket 9777,
* | | Merge branch 'prop221_squashed_024'Nick Mathewson2013-11-01
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: src/or/or.h
| * | | Implement proposal 221: Stop sending CREATE_FASTNick Mathewson2013-11-01
| |/ / | | | | | | | | | | | | This makes FastFirstHopPK an AUTOBOOL; makes the default "auto"; and makes the behavior of "auto" be "look at the consensus."
* | | Make circpathbias and circuitbuild compile.Nick Mathewson2013-10-31
| | | | | | | | | | | | That was the tricky part
* | | Move pathbias functions into a new file.Nick Mathewson2013-10-31
| | | | | | | | | | | | Does not compile yet. This is the "no code changed" diff.
* | | Simply route length generation code.Nick Mathewson2013-10-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old code had logic to use a shorter path length if we didn't have enough nodes. But we don't support 2-node networks anwyay. Fix for #9926. I'm not calling this a bugfix on any particular version, since a 2-node network would fail to work for you for a lot of other reasons too, and it's not clear to me when that began, or if 2-node networks would ever have worked.
* | | Separate mutable/const accessors for circuit_build_timesNick Mathewson2013-08-22
| | | | | | | | | | | | (These have proved invaluable for other global accessors.)
* | | Rename get_circuit_nbuild_* to end with _msNick Mathewson2013-08-22
| | |
* | | Make circ_times static and add accessor functions.vagrant2013-08-22
| | | | | | | | | | | | | | | | | | Change the global circ_times to a static variable and use accessor functions throughout the code, instead of accessing it directly.
* | | Rename circuit_get_global_list to remove trailing _Nick Mathewson2013-08-15
| | |
* | | Fix #9108 - make global_circuitlist a doubly linked listMarek Majkowski2013-06-20
| | |
* | | Don't access global_circuitlist variable directly. Use a getter instead.Marek Majkowski2013-06-20
|/ /
* | Bug 8235: Fix scaling adjustments.Mike Perry2013-04-24
| | | | | | | | | | | | 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.
* | Fix a wide lineNick Mathewson2013-04-03
| |
* | Add additional checks for Path Bias scaling.Mike Perry2013-04-03
| | | | | | | | | | Just in case more issues remain with scaling, it would be nice to pin-point them as such.
* | Bug #8196: Demote a path bias notice that can be caused by controllers.Mike Perry2013-03-29
| | | | | | | | We didn't see this in normal usage anyway.
* | Bug 8230: Mark circuits as opened before reachability testing.Mike Perry2013-03-29
| | | | | | | | Should silence two path bias Bug messages seen on relays at startup.
* | Add some missing case values to please clangNick Mathewson2013-03-27
| | | | | | | | | | | | | | | | | | 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.
* | Bug 7065: Use $ for idhex instead of =Mike Perry2013-03-26
| |
* | Merge remote-tracking branch 'public/bug6174' into maint-0.2.4Nick Mathewson2013-03-18
|\ \
| * | Rename circuit_expire_all_dirty_circsNick Mathewson2013-02-19
| | | | | | | | | | | | | | | | | | The new name is circuit_mark_all_dirty_circs_as_unusable. This resolves an XXX024
* | | Merge remote-tracking branch 'public/no_dup_guards' into maint-0.2.4Nick Mathewson2013-03-18
|\ \ \
| * | | Be more robust when excluding existing nodes as new dirguardsNick Mathewson2013-02-14
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Fix 8447: use %u to format circid_t.Nick Mathewson2013-03-10
| |/ / |/| | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Downgrade an assert to LD_BUGNick Mathewson2013-02-19
| | | | | | | | | | | | | | | This should prevent crashes on further recurrence of 8065, and help diagnose such if they occur
* | | Merge remote-tracking branch 'public/wide_circ_ids'Nick Mathewson2013-02-15
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/channel.h src/or/connection_or.c src/or/cpuworker.c
| * | | Allow a v4 link protocol for 4-byte circuit IDs.Nick Mathewson2012-11-06
| | | | | | | | | | | | | | | | | | | | | | | | Implements proposal 214. Needs testing.
* | | | Merge remote-tracking branch 'public/feature4994-rebased'Nick Mathewson2013-02-15
|\ \ \ \ | |_|/ / |/| | |
| * | | Restore the entry/dirguard distinction.Nick Mathewson2013-02-12
| | | | | | | | | | | | | | | | | | | | We shouldn't be calling choose_random_entry() for directory conncetions; that's what choose_random_dirguard() is for.
| * | | generalize choose_random_entry()'s dirinfo parameterRoger Dingledine2013-02-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | use microdescriptors if *any* of our bridges can handle themRoger Dingledine2013-02-02
| | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Avoid null-pointer deref in pathbias_is_new_circ_attemptNick Mathewson2013-02-11
| |_|/ |/| | | | | | | | | | | Coverity is worried about this (CID 980653). It hasn't happened in testing, but we might as well make sure it can't happen.
* | | Mention a trac ticket relevant to an XXX comment.Mike Perry2013-02-07
| | |
* | | Better document an XXX comment about refactoring.Mike Perry2013-02-07
| | |