| Commit message (Expand) | Author | Age |
* | Merge branch 'bug2286_unit_test_squashed' | Nick Mathewson | 2013-02-19 |
|\ |
|
| * | Refactor storing of measured_bw versus Unmeasured=1.•••This patch moves the measured_bw field and the has_measured_bw field
into vote_routerstatus_t, since only votes have 'Measured=XX' set on
their weight line.
I also added a new bw_is_unmeasured flag to routerstatus_t to
represent the Unmeasured=1 flag on a w line. Previously, I was using
has_measured_bw for this, which was quite incorrect: has_measured_bw
means that the measured_bw field is set, and it's probably a mistake
to have it serve double duty as meaning that 'baandwidth' represents a
measured value.
While making this change,I also found a harmless but stupid bug in
dirserv_read_measured_bandwidths: It assumes that it's getting a
smartlist of routerstatus_t, when really it's getting a smartlist of
vote_routerstatus_t. C's struct layout rules mean that we could never
actually get an error because of that, but it's still quite incorrect.
I fixed that, and in the process needed to add two more sorting and
searching helpers.
Finally, I made the Unmeasured=1 flag get parsed. We don't use it for
anything yet, but someday we might.
This isn't complete yet -- the new 2286 unit test doesn't build.
| Nick Mathewson | 2013-02-19 |
| * | Tweak consensus method 17 based on arma's comments•••Instead of capping whenever a router has fewer than 3 measurements,
we cap whenever a router has fewer than 3 measurements *AND* there
are at least 3 authorities publishing measured bandwidths.
We also generate bandwidth lines with a new "Unmeasured=1" flag,
meaning that we didn't have enough observations for a node to use
measured bandwidth values in the authority's input, whether we capped
it or not.
| Nick Mathewson | 2013-02-19 |
* | | Merge remote-tracking branch 'public/wide_circ_ids'•••Conflicts:
src/or/channel.h
src/or/connection_or.c
src/or/cpuworker.c
| Nick Mathewson | 2013-02-15 |
|\ \ |
|
| * | | Replace magic constants for wide_circ_ids with inline function calls | Nick Mathewson | 2013-02-09 |
| * | | Allow a v4 link protocol for 4-byte circuit IDs.•••Implements proposal 214.
Needs testing.
| Nick Mathewson | 2012-11-06 |
* | | | Wrap more macro definitions in (parentheses)•••To avoid surprises, good coding practice suggests parenthesizing every
macro definition -- or at the very least, all those involving an
expression.
| Nick Mathewson | 2013-02-09 |
| |/
|/| |
|
* | | Merge remote-tracking branch 'public/feature7706' | Nick Mathewson | 2013-02-01 |
|\ \ |
|
| * | | When excluding nodes by country, exclude {??} and {A1} too•••This is ticket 7706, reported by "bugcatcher." The rationale here
is that if somebody says 'ExcludeNodes {tv}', then they probably
don't just want to block definitely Tuvaluan nodes: they also want
to block nodes that have unknown country, since for all they know
such nodes are also in Tuvalu.
This behavior is controlled by a new GeoIPExcludeUnknown autobool
option. With the default (auto) setting, we exclude ?? and A1 if
any country is excluded. If the option is 1, we add ?? and A1
unconditionally; if the option is 0, we never add them.
(Right now our geoip file doesn't actually seem to include A1: I'm
including it here in case it comes back.)
This feature only takes effect if you have a GeoIP file. Otherwise
you'd be excluding every node.
| Nick Mathewson | 2013-01-17 |
* | | | Refactor code that rolls back the use state•••Also document it better.
Mention this refactoring in the comments for the path state machine.
| Mike Perry | 2013-02-01 |
* | | | 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.
| Mike Perry | 2013-02-01 |
* | | | Add a tristate to guard against unexpected circ purpose transitions | Mike Perry | 2013-02-01 |
* | | | Clarify state transition and related pathbias comments | Mike Perry | 2013-02-01 |
* | | | Merge branch 'bug5956_squashed' | Nick Mathewson | 2013-01-30 |
|\ \ \ |
|
| * | | | Parameterize FRAC_USABLE_NEEDED for fraction of circuits•••Instead of hardcoding the minimum fraction of possible paths to 0.6, we
take it from the user, and failing that from the consensus, and
failing that we fall back to 0.6.
| Nick Mathewson | 2013-01-30 |
| |/ / |
|
* | | | Merge branch 'bug7802' of ssh://git-rw.torproject.org/mikeperry/tor | Andrea Shepard | 2013-01-28 |
|\ \ \ |
|
| * | | | Implement Path use bias accounting.•••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.
| Mike Perry | 2013-01-18 |
| |/ / |
|
* | | | Merge branch 'time_based_onionqueue_v2' of ssh://git-rw.torproject.org/nickm/tor | Andrea Shepard | 2013-01-24 |
|\ \ \
| |/ /
|/| | |
|
| * | | Use a TAILQ, not a singly-linked queue, for the onion queue.•••This makes removing items from the middle of the queue into an O(1)
operation, which could prove important as we let onionqueues grow
longer.
Doing this actually makes the code slightly smaller, too.
| Nick Mathewson | 2013-01-03 |
| * | | Eliminate MaxOnionsPending; replace it with MaxOnionQueueDelay•••The right way to set "MaxOnionsPending" was to adjust it until the
processing delay was appropriate. So instead, let's measure how long
it takes to process onionskins (sampling them once we have a big
number), and then limit the queue based on its expected time to
finish.
This change is extra-necessary for ntor, since there is no longer a
reasonable way to set MaxOnionsPending without knowing what mix of
onionskins you'll get.
This patch also reserves 1/3 of the onionskin spots for ntor
handshakes, on the theory that TAP handshakes shouldn't be allowed to
starve their speedier cousins. We can change this later if need be.
Resolves 7291.
| Nick Mathewson | 2013-01-03 |
* | | | Merge branch '024_msvc_squashed'•••Conflicts:
src/or/or.h
srcwin32/orconfig.h
| Nick Mathewson | 2013-01-16 |
|\ \ \ |
|
| * | | | Fix an instance of snprintf; don't use _snprintf directly | Nick Mathewson | 2013-01-16 |
| * | | | When building with MSVC, call every enum bitfield unsigned•••Fixes bug 7305.
| Nick Mathewson | 2013-01-16 |
* | | | | Update the copyright date to 201. | Nick Mathewson | 2013-01-16 |
* | | | | Clean up odds and ends | Roger Dingledine | 2013-01-15 |
* | | | | Bug 7691 review fixes.•••Also add in the random nonce generation.
| Mike Perry | 2013-01-08 |
* | | | | Bug 7691: Send a probe cell down certain types of circs.•••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.
| Mike Perry | 2013-01-08 |
| |/ /
|/| | |
|
* | | | Merge branch 'ntor-resquashed'•••Conflicts:
src/or/cpuworker.c
src/or/or.h
src/test/bench.c
| Nick Mathewson | 2013-01-03 |
|\ \ \ |
|
| * | | | Enable the ntor handshake on the client side.•••"works for me"
| Nick Mathewson | 2013-01-03 |
| * | | | Use new wrappers for making,sending,processing create/extend cells | Nick Mathewson | 2013-01-03 |
| * | | | Teach cpuworker and others about create_cell_t and friends•••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
| Nick Mathewson | 2013-01-03 |
| * | | | Code to parse and format CREATE{,2,_FAST} cells and their allies•••As elsewhere, it makes sense when adding or extending a cell type to
actually make the code to parse it into a separate tested function.
This commit doesn't actually make anything use these new functions;
that's for a later commit.
| Nick Mathewson | 2013-01-03 |
| * | | | Rename handshake_digest to rend_circ_nonce•••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..
| Nick Mathewson | 2013-01-03 |
| * | | | Massive refactoring of the various handshake types•••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.
| Nick Mathewson | 2013-01-03 |
| * | | | Refactor the CREATE_FAST handshake code to match the others. | Nick Mathewson | 2013-01-03 |
| * | | | Wrangle curve25519 onion keys: generate, store, load, publish, republish•••Here we try to handle curve25519 onion keys from generating them,
loading and storing them, publishing them in our descriptors, putting
them in microdescriptors, and so on.
This commit is untested and probably buggy like whoa
| Nick Mathewson | 2013-01-02 |
* | | | | Merge remote-tracking branch 'mikeperry/209-path-bias-changes' | Nick Mathewson | 2012-12-25 |
|\ \ \ \ |
|
| * | | | | Tags on relay cells can result in certain reason codes.•••Close the circuit (it's probably junk anyways), and make sure we don't probe
it/count it as a success.
| Mike Perry | 2012-12-11 |
| * | | | | Rename first_hop to circ_attempt.•••Since we've generalized what we can count from (first or second hop), we
should generalize the variable and constant naming too.
| Mike Perry | 2012-12-09 |
| * | | | | Refactor path use bias code into own function.•••Also, improve and log some failure cases.
| Mike Perry | 2012-12-07 |
| * | | | | Document that care needs to be taken with any_streams_attached. | Mike Perry | 2012-12-07 |
| * | | | | Prop 209: Add in hidserv path bias counts for usage. | Mike Perry | 2012-12-07 |
| * | | | | Prop 209: Add path bias counts for timeouts and other mechanisms.•••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.
| Mike Perry | 2012-12-07 |
| * | | | | Update with code review changes from Nick. | Mike Perry | 2012-12-07 |
| * | | | | Update pathbias parameters to match Proposal 209.•••Needs manpage update and testing still..
| Mike Perry | 2012-12-07 |
| * | | | | Add the ability to count circuit timeouts for guards.•••This is purely for informational reasons for debugging.
| Mike Perry | 2012-12-07 |
* | | | | | Add configuration options for directory guards•••In addition to all the other ways to make directory gurads not go,
you can now set UseEntryGuardsAsDirGuards to 0.
| Nick Mathewson | 2012-12-25 |
* | | | | | Make ECDHE group configurable: 224 for public, 256 for bridges (default) | Nick Mathewson | 2012-12-25 |
| |_|/ /
|/| | | |
|
* | | | | Add missing doxygen for DNS and automap code | Nick Mathewson | 2012-12-17 |
* | | | | Per-listener option to prefer IPv6 automaps when possible. | Nick Mathewson | 2012-12-17 |