aboutsummaryrefslogtreecommitdiff
path: root/src/or/or.h
Commit message (Collapse)AuthorAge
...
| * | | | | Increase link_proto field to 2 bytesNick Mathewson2013-03-11
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This should have been 2 bytes all along, since version numbers can be 16 bits long. This isn't a live bug, since the call to is_or_protocol_version_known in channel_tls_process_versions_cell will reject any version number not in the range 1..4. Still, let's fix this before we accidentally start supporting version 256. Reported pseudonymously. Fixes bug 8062; bugfix on 0.2.0.10-alpha -- specifically, on commit 6fcda529, where during development I increased the width of a version to 16 bits without changing the type of link_proto.
* | | | | Merge remote-tracking branch 'andrea/bug8435' into maint-0.2.4Nick Mathewson2013-03-18
|\ \ \ \ \
| * | | | | Ignore advertised bandwidths if we have enough measured bandwidths availableAndrea Shepard2013-03-18
| | |/ / / | |/| | |
* | | | | 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.
| * | | | | Add some code to bluntly prevent duplicate guards from getting addedNick Mathewson2013-02-14
| | |_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | Apparently something in the directory guard code made it possible for the same node to get added as a guard over and over when there were no actual running guard nodes.
* | | | | Merge remote-tracking branch 'public/unused_stuff' into maint-0.2.4Nick Mathewson2013-03-15
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Remove a bunch of unused macro definitionsNick Mathewson2013-02-23
| | |/ / | |/| |
* | | | randomize SSLKeyLifetime by defaultRoger Dingledine2013-03-10
| | | | | | | | | | | | | | | | resolves ticket 8443.
* | | | parameterize SSLKeyLifetimeRoger Dingledine2013-03-10
| | | | | | | | | | | | | | | | no actual changes in behavior yet
* | | | Tweak bug6783 patch.Nick Mathewson2013-03-10
| | | |
* | | | Add a DisableV2DirectoryInfo_ option to 404 all v2 ns requestsNick Mathewson2013-03-10
|/ / / | | | | | | | | | | | | | | | | | | I have no idea whether b0rken clients will DoS the network if the v2 authorities all turn this on or not. It's experimental. See #6783 for a description of how to test it more or less safely, and please be careful!
* | | Merge branch 'bug2286_unit_test_squashed'Nick Mathewson2013-02-19
|\ \ \
| * | | Refactor storing of measured_bw versus Unmeasured=1.Nick Mathewson2013-02-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Tweak consensus method 17 based on arma's commentsNick Mathewson2013-02-19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | 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
| * | | Replace magic constants for wide_circ_ids with inline function callsNick Mathewson2013-02-09
| | | |
| * | | Allow a v4 link protocol for 4-byte circuit IDs.Nick Mathewson2012-11-06
| | | | | | | | | | | | | | | | | | | | | | | | Implements proposal 214. Needs testing.
* | | | Wrap more macro definitions in (parentheses)Nick Mathewson2013-02-09
| |/ / |/| | | | | | | | | | | | | | To avoid surprises, good coding practice suggests parenthesizing every macro definition -- or at the very least, all those involving an expression.
* | | Merge remote-tracking branch 'public/feature7706'Nick Mathewson2013-02-01
|\ \ \
| * | | When excluding nodes by country, exclude {??} and {A1} tooNick Mathewson2013-01-17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Refactor code that rolls back the use stateMike Perry2013-02-01
| | | | | | | | | | | | | | | | | | | | | | | | Also document it better. Mention this refactoring in the comments for the path state machine.
* | | | Refactor the scaling parameter fetching into a single function.Mike Perry2013-02-01
| | | | | | | | | | | | | | | | | | | | 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.
* | | | 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 circuitsNick Mathewson2013-01-30
| |/ / / | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge branch 'bug7802' of ssh://git-rw.torproject.org/mikeperry/torAndrea Shepard2013-01-28
|\ \ \ \
| * | | | Implement Path use bias accounting.Mike Perry2013-01-18
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | 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.Nick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | Eliminate MaxOnionsPending; replace it with MaxOnionQueueDelayNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge branch '024_msvc_squashed'Nick Mathewson2013-01-16
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/or.h srcwin32/orconfig.h
| * | | | Fix an instance of snprintf; don't use _snprintf directlyNick Mathewson2013-01-16
| | | | |
| * | | | When building with MSVC, call every enum bitfield unsignedNick Mathewson2013-01-16
| | | | | | | | | | | | | | | | | | | | Fixes bug 7305.
* | | | | Update the copyright date to 201.Nick Mathewson2013-01-16
| | | | |
* | | | | Clean up odds and endsRoger Dingledine2013-01-15
| | | | |
* | | | | Bug 7691 review fixes.Mike Perry2013-01-08
| | | | | | | | | | | | | | | | | | | | Also add in the random nonce generation.
* | | | | Bug 7691: Send a probe cell down certain types of circs.Mike Perry2013-01-08
| |/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | | Merge branch 'ntor-resquashed'Nick Mathewson2013-01-03
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/cpuworker.c src/or/or.h src/test/bench.c
| * | | | Enable the ntor handshake on the client side.Nick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | "works for me"
| * | | | Use new wrappers for making,sending,processing create/extend cellsNick Mathewson2013-01-03
| | | | |
| * | | | Teach cpuworker and others about create_cell_t and friendsNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
| * | | | Code to parse and format CREATE{,2,_FAST} cells and their alliesNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Rename handshake_digest to rend_circ_nonceNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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..
| * | | | Massive refactoring of the various handshake typesNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | 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.
| * | | | Refactor the CREATE_FAST handshake code to match the others.Nick Mathewson2013-01-03
| | | | |
| * | | | Wrangle curve25519 onion keys: generate, store, load, publish, republishNick Mathewson2013-01-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* | | | | Merge remote-tracking branch 'mikeperry/209-path-bias-changes'Nick Mathewson2012-12-25
|\ \ \ \ \
| * | | | | Tags on relay cells can result in certain reason codes.Mike Perry2012-12-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Close the circuit (it's probably junk anyways), and make sure we don't probe it/count it as a success.