aboutsummaryrefslogtreecommitdiff
path: root/src/or/or.h
Commit message (Expand)AuthorAge
* Merge branch 'bug2286_unit_test_squashed'Nick Mathewson2013-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 Mathewson2013-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 Mathewson2013-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 Mathewson2013-02-15
|\ \
| * | Replace magic constants for wide_circ_ids with inline function callsNick Mathewson2013-02-09
| * | Allow a v4 link protocol for 4-byte circuit IDs.•••Implements proposal 214. Needs testing. Nick Mathewson2012-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 Mathewson2013-02-09
| |/ |/|
* | Merge remote-tracking branch 'public/feature7706'Nick Mathewson2013-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 Mathewson2013-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 Perry2013-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 Perry2013-02-01
* | | Add a tristate to guard against unexpected circ purpose transitionsMike Perry2013-02-01
* | | Clarify state transition and related pathbias commentsMike Perry2013-02-01
* | | Merge branch 'bug5956_squashed'Nick Mathewson2013-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 Mathewson2013-01-30
| |/ /
* | | Merge branch 'bug7802' of ssh://git-rw.torproject.org/mikeperry/torAndrea Shepard2013-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 Perry2013-01-18
| |/ /
* | | Merge branch 'time_based_onionqueue_v2' of ssh://git-rw.torproject.org/nickm/torAndrea Shepard2013-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 Mathewson2013-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 Mathewson2013-01-03
* | | Merge branch '024_msvc_squashed'•••Conflicts: src/or/or.h srcwin32/orconfig.h Nick Mathewson2013-01-16
|\ \ \
| * | | Fix an instance of snprintf; don't use _snprintf directlyNick Mathewson2013-01-16
| * | | When building with MSVC, call every enum bitfield unsigned•••Fixes bug 7305. Nick Mathewson2013-01-16
* | | | Update the copyright date to 201.Nick Mathewson2013-01-16
* | | | Clean up odds and endsRoger Dingledine2013-01-15
* | | | Bug 7691 review fixes.•••Also add in the random nonce generation. Mike Perry2013-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 Perry2013-01-08
| |/ / |/| |
* | | Merge branch 'ntor-resquashed'•••Conflicts: src/or/cpuworker.c src/or/or.h src/test/bench.c Nick Mathewson2013-01-03
|\ \ \
| * | | Enable the ntor handshake on the client side.•••"works for me" Nick 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 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 Mathewson2013-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 Mathewson2013-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 Mathewson2013-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 Mathewson2013-01-03
| * | | Refactor the CREATE_FAST handshake code to match the others.Nick Mathewson2013-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 Mathewson2013-01-02
* | | | Merge remote-tracking branch 'mikeperry/209-path-bias-changes'Nick Mathewson2012-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 Perry2012-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 Perry2012-12-09
| * | | | Refactor path use bias code into own function.•••Also, improve and log some failure cases. Mike Perry2012-12-07
| * | | | Document that care needs to be taken with any_streams_attached.Mike Perry2012-12-07
| * | | | Prop 209: Add in hidserv path bias counts for usage.Mike Perry2012-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 Perry2012-12-07
| * | | | Update with code review changes from Nick.Mike Perry2012-12-07
| * | | | Update pathbias parameters to match Proposal 209.•••Needs manpage update and testing still.. Mike Perry2012-12-07
| * | | | Add the ability to count circuit timeouts for guards.•••This is purely for informational reasons for debugging. Mike Perry2012-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 Mathewson2012-12-25
* | | | | Make ECDHE group configurable: 224 for public, 256 for bridges (default)Nick Mathewson2012-12-25
| |_|/ / |/| | |
* | | | Add missing doxygen for DNS and automap codeNick Mathewson2012-12-17
* | | | Per-listener option to prefer IPv6 automaps when possible.Nick Mathewson2012-12-17