Nick Mathewson
babbd3ff08
Merge remote-tracking branch 'public/feature9777_024_squashed'
...
Conflicts:
src/or/circuitbuild.c
2014-02-07 10:47:34 -05:00
Nick Mathewson
1068e50aec
Discard circuit paths on which nobody supports ntor
...
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,
2014-02-07 10:45:34 -05:00
Nick Mathewson
12dc55f487
Merge branch 'prop221_squashed_024'
...
Conflicts:
src/or/or.h
2013-11-01 10:28:01 -04:00
Nick Mathewson
0de71bf8eb
Implement proposal 221: Stop sending CREATE_FAST
...
This makes FastFirstHopPK an AUTOBOOL; makes the default "auto"; and
makes the behavior of "auto" be "look at the consensus."
2013-11-01 10:04:48 -04:00
Nick Mathewson
5cba0ddfc4
Make circpathbias and circuitbuild compile.
...
That was the tricky part
2013-10-31 14:28:49 -04:00
Nick Mathewson
b4ebf8421a
Move pathbias functions into a new file.
...
Does not compile yet. This is the "no code changed" diff.
2013-10-31 14:17:49 -04:00
Nick Mathewson
c8c2298015
Simply route length generation code.
...
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.
2013-10-08 11:48:33 -04:00
Nick Mathewson
775c491502
Separate mutable/const accessors for circuit_build_times
...
(These have proved invaluable for other global accessors.)
2013-08-22 10:15:56 -04:00
Nick Mathewson
e1c9b43b8e
Rename get_circuit_nbuild_* to end with _ms
2013-08-22 10:15:56 -04:00
vagrant
4834641dce
Make circ_times static and add accessor functions.
...
Change the global circ_times to a static variable and use
accessor functions throughout the code, instead of
accessing it directly.
2013-08-22 10:15:56 -04:00
Nick Mathewson
a3ffa1f76e
Rename circuit_get_global_list to remove trailing _
2013-08-15 15:37:23 -04:00
Marek Majkowski
1555876d5f
Fix #9108 - make global_circuitlist a doubly linked list
2013-06-20 16:56:54 +01:00
Marek Majkowski
d7538b57b4
Don't access global_circuitlist variable directly. Use a getter instead.
2013-06-20 16:40:05 +01:00
Mike Perry
2170f89a93
Bug 8235: Fix scaling adjustments.
...
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-24 22:03:02 -04:00
Nick Mathewson
33b7083f26
Fix a wide line
2013-04-03 09:36:37 -04:00
Mike Perry
56e7dff7bd
Add additional checks for Path Bias scaling.
...
Just in case more issues remain with scaling, it would be nice to pin-point
them as such.
2013-04-03 09:32:15 -04:00
Mike Perry
9117b14218
Bug #8196 : Demote a path bias notice that can be caused by controllers.
...
We didn't see this in normal usage anyway.
2013-03-29 12:21:28 -04:00
Mike Perry
a7d6683629
Bug 8230: Mark circuits as opened before reachability testing.
...
Should silence two path bias Bug messages seen on relays at startup.
2013-03-29 12:20:54 -04:00
Nick Mathewson
7f8098d2d0
Add some missing case values to please clang
...
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-27 21:04:08 -04:00
Mike Perry
914bfe765d
Bug 7065: Use $ for idhex instead of =
2013-03-26 18:49:41 -07:00
Nick Mathewson
597cd893c5
Merge remote-tracking branch 'public/bug6174' into maint-0.2.4
2013-03-18 16:36:25 -04:00
Nick Mathewson
26639b7798
Merge remote-tracking branch 'public/no_dup_guards' into maint-0.2.4
2013-03-18 14:50:01 -04:00
Nick Mathewson
339df5df08
Fix 8447: use %u to format circid_t.
...
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 bfffc1f0fc
. Bug not
in any released Tor.
2013-03-10 19:52:06 -04:00
Nick Mathewson
7bb51fdd89
Rename circuit_expire_all_dirty_circs
...
The new name is circuit_mark_all_dirty_circs_as_unusable.
This resolves an XXX024
2013-02-19 18:37:03 -05:00
Nick Mathewson
3340d3279d
Downgrade an assert to LD_BUG
...
This should prevent crashes on further recurrence of 8065, and help
diagnose such if they occur
2013-02-19 15:02:08 -05:00
Nick Mathewson
d6634001c9
Merge remote-tracking branch 'public/wide_circ_ids'
...
Conflicts:
src/or/channel.h
src/or/connection_or.c
src/or/cpuworker.c
2013-02-15 16:23:43 -05:00
Nick Mathewson
0fa362cafa
Merge remote-tracking branch 'public/feature4994-rebased'
2013-02-15 15:58:54 -05:00
Nick Mathewson
1070a720ad
Be more robust when excluding existing nodes as new dirguards
...
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-14 12:06:59 -05:00
Nick Mathewson
d7089ff228
Restore the entry/dirguard distinction.
...
We shouldn't be calling choose_random_entry() for directory
conncetions; that's what choose_random_dirguard() is for.
2013-02-12 16:23:12 -05:00
Nick Mathewson
f3835bcb37
Avoid null-pointer deref in pathbias_is_new_circ_attempt
...
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-11 16:59:21 -05:00
Roger Dingledine
e1ec03f819
use router->addr for log messages and controller events
...
(rather than router->address)
2013-02-09 21:10:07 -05:00
Mike Perry
eb15be3d45
Mention a trac ticket relevant to an XXX comment.
2013-02-07 14:30:58 -05:00
Mike Perry
bbd38f293f
Better document an XXX comment about refactoring.
2013-02-07 14:30:58 -05:00
Mike Perry
b03553737c
Separate the flags for logging use bias.
...
I think we want both sets of messages to appear independently to help us know
what needs tuning.
2013-02-07 14:30:58 -05:00
Mike Perry
a99ebaf4c7
Lower path use bias thresholds.
...
I noticed bad wifi networks can have low use success rates.
2013-02-04 16:57:09 -08:00
Nick Mathewson
b64dc35b5c
Reinstate some fixes/tweaks from 6e4a4002
...
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-04 11:51:39 -05:00
Roger Dingledine
bce5019eff
generalize choose_random_entry()'s dirinfo parameter
...
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-02 08:19:27 -08:00
Roger Dingledine
a8297cdbd3
use microdescriptors if *any* of our bridges can handle them
...
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-02 08:04:20 -08:00
Nick Mathewson
996db755c2
Fix a couple of warnings on the 8081 branch.
2013-02-01 17:03:00 -05:00
Mike Perry
b3e57b760e
Increment an informational counter for use failed state.
...
This informational counter is probably now redundant, but might as well keep
it consistent I guess.
2013-02-01 17:01:26 -05:00
Mike Perry
6e4610de02
Fix a log typo found by sysrqb.
2013-02-01 17:01:22 -05:00
Mike Perry
bce6714f99
Refactor code that rolls back the use state
...
Also document it better.
Mention this refactoring in the comments for the path state machine.
2013-02-01 17:01:16 -05:00
Mike Perry
3a63e5ef42
Refactor and rename pathbias rate evaluation.
2013-02-01 17:01:12 -05:00
Mike Perry
dfcfb5d17d
Refactor the scaling parameter fetching into a single function.
...
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-01 17:01:12 -05:00
Mike Perry
2b2c7f23f5
Mark entry guard state dirty everwhere the pathbias code touches it.
2013-02-01 17:01:12 -05:00
Mike Perry
6828a19670
Add a tristate to guard against unexpected circ purpose transitions
2013-02-01 17:01:12 -05:00
Mike Perry
173ed05d2f
Clarify state transition and related pathbias comments
2013-02-01 17:01:12 -05:00
Mike Perry
a78542f0c3
Bug 8024: Check for null/closed channel before probing.
2013-01-22 21:03:28 -08:00
Mike Perry
b810d322bf
squash! Remove a source of error during path bias scaling
...
Improve debug logs and fix a state fencepost error.
2013-01-20 14:32:56 -08:00
Mike Perry
06a1d0b044
squash! Implement Path use bias accounting.
...
Make a debug log more informative.
2013-01-20 14:32:56 -08:00