aboutsummaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Merge remote-tracking branch 'public/bug7708_023_v3_squashed'Nick Mathewson2013-02-01
|\
| * Clarify documentation of connection_finished_flushingNick Mathewson2013-02-01
| |
| * Fix serious breakage in connection_handle_write_implNick Mathewson2013-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | When we first implemented TLS, we assumed in conneciton_handle_write that a TOR_TLS_WANT_WRITE from flush_buf_tls meant that nothing had been written. But when we moved our buffers to a ring buffer implementation back in 0.1.0.5-rc (!), we broke that invariant: it's possible that some bytes have been written but nothing. That's bad. It means that if we do a sequence of TLS writes that ends with a WANTWRITE, we don't notice that we flushed any bytes, and we don't (I think) decrement buckets. Fixes bug 7708; bugfix on 0.1.0.5-rc
* | Fix a couple of warnings on the 8081 branch.Nick Mathewson2013-02-01
| |
* | Add EntryGuardPathUseBias to state file keyword list.Mike Perry2013-02-01
| |
* | Increment an informational counter for use failed state.Mike Perry2013-02-01
| | | | | | | | | | This informational counter is probably now redundant, but might as well keep it consistent I guess.
* | Rename and relocate the bw weight scale param getter.Mike Perry2013-02-01
| | | | | | | | It had nothing to do with circuit build times.
* | Fix a log typo found by sysrqb.Mike Perry2013-02-01
| |
* | Bounds-check path bias rate parameters.Mike Perry2013-02-01
| | | | | | | | The other remaining parameters don't really need range checks.
* | 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 and rename pathbias rate evaluation.Mike Perry2013-02-01
| |
* | 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.
* | Mark entry guard state dirty everwhere the pathbias code touches it.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 'rename_log_7599'Nick Mathewson2013-02-01
|\ \
| * | fix wide lines from tor_log renameNick Mathewson2013-02-01
| | |
| * | Fix a silly mistake in the tor_mathlog() documentation. Give it a unit test.Nick Mathewson2013-02-01
| | |
| * | Remove old wrapper code and defines for keeping log() and log(3) apartNick Mathewson2013-02-01
| | | | | | | | | | | | This is the non-automated portion of bug 7599.
| * | Rename log() to tor_log() for loggingNick Mathewson2013-02-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is meant to avoid conflict with the built-in log() function in math.h. It resolves ticket 7599. First reported by dhill. This was generated with the following perl script: #!/usr/bin/perl -w -i -p s/\blog\(LOG_(ERR|WARN|NOTICE|INFO|DEBUG)\s*,\s*/log_\L$1\(/g; s/\blog\(/tor_log\(/g;
* | | Help us track bug 8093:Roger Dingledine2013-02-01
|/ / | | | | | | | | Improve the log message when "Bug/attack: unexpected sendme cell from client" occurs.
* | typo in crypto_curve25519.c comment, spotted by rransomNick Mathewson2013-01-31
| |
* | whitespace fixNick Mathewson2013-01-31
| |
* | Merge branch 'double-0-check'Nick Mathewson2013-01-31
|\ \
| * | Detect platforms where memset(0) doesn't set doubles to 0.0.Nick Mathewson2013-01-29
| | | | | | | | | | | | | | | | | | | | | This is allowed by the C statndard, which permits you to represent doubles any way you like, but in practice we have some code that assumes that memset() clears doubles in structs. Noticed as part of 7802 review; see 8081 for more info.
* | | Use %d, not %02d, for decimal percentagesNick Mathewson2013-01-30
| | | | | | | | | | | | Cosmetic tweak on 5956; not in any released tor.
* | | Rename all of the macros in tor_queue.h to start with TOR_Nick Mathewson2013-01-30
| | |
* | | 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.
| * | Compute whether we're ready to build circuits based on fraction of pathsNick Mathewson2013-01-30
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously we did this based on the fraction of descriptors we had. But really, we should be going based on what fraction of paths we're able to build based on weighted bandwidth, since otherwise a directory guard or two could make us behave quite oddly. Implementation for feature 5956
| * | Add an optional out-arg to count_usable_descriptorsNick Mathewson2013-01-30
| | | | | | | | | | | | | | | This way we get the usable nodes themselves, so we can feed them into frac_nodes_with_descriptors
| * | Add a function to compute fraction of nodes (by weighted bw) with descriptorsNick Mathewson2013-01-30
| | |
| * | Split smartlist_choose_node_by_bandwidth_weightsNick Mathewson2013-01-18
| | | | | | | | | | | | | | | | | | This is a minimal refactoring to expose the weighted bandwidth calculations for each node so I can use them to see what fraction of nodes, weighted by bandwidth, we have descriptors for.
* | | Fix unit test to not expect v2 directory request geoip infoNick Mathewson2013-01-29
| | | | | | | | | | | | | | | | | | | | | When we implemented #5823 and removed v2 directory request info, we never actually changed the unit tests not to expect it. Fixes bug 8084; bug not in any released version of Tor.
* | | Merge branch 'bug7802' of ssh://git-rw.torproject.org/mikeperry/torAndrea Shepard2013-01-28
|\ \ \
| * | | Bug 8024: Check for null/closed channel before probing.Mike Perry2013-01-22
| | | |
| * | | squash! Remove a source of error during path bias scalingMike Perry2013-01-20
| | | | | | | | | | | | | | | | Improve debug logs and fix a state fencepost error.
| * | | squash! Implement Path use bias accounting.Mike Perry2013-01-20
| | | | | | | | | | | | | | | | Make a debug log more informative.
| * | | Prevent early close of path bias testing circuits.Mike Perry2013-01-20
| | | | | | | | | | | | | | | | We need to let them live long enough to perform the test.
| * | | squash! Remove a source of error during path bias scalingMike Perry2013-01-20
| | | | | | | | | | | | | | | | Move a log message about scaling to after we scale
| * | | Remove a source of error during path bias scalingMike Perry2013-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If any circuits were opened during a scaling event, we were scaling attempts and successes by different amounts. This leads to rounding error. The fix is to record how many circuits are in a state that hasn't been fully counted yet, and subtract that before scaling, and add it back afterwords.
| * | | Don't immediately count cannibalized circs as used.Mike Perry2013-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since they use RELAY_EARLY (which can be seen by all hops on the path), it's not safe to say they actually count as a successful use. There are also problems with trying to allow them to finish extending due to the circuit purpose state machine logic. It is way less complicated (and possibly more semantically coherent) to simply wait until we actually try to do something with them before claiming we 'used' them. Also, we shouldn't call timed out circuits 'used' either, for semantic consistency.
| * | | Roll back the path_state for circs if we detatch a stream.Mike Perry2013-01-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | An adversary could let the first stream request succeed (ie the resolve), but then tag and timeout the remainder (via cell dropping), forcing them on new circuits. Rolling back the state will cause us to probe such circuits, which should lead to probe failures in the event of such tagging due to either unrecognized cells coming in while we wait for the probe, or the cipher state getting out of sync in the case of dropped cells.
| * | | 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
|\ \ \ \
| * | | | Better handling (I think) for onionskin timing w jumpy clocksNick Mathewson2013-01-03
| | | | | | | | | | | | | | | | | | | | | | | | | The fix: Instead of clipping huge/negative times, ignore them as probably invalid.
| * | | | Record and report the overhead of how we handle onionskins.Nick Mathewson2013-01-03
| | | | |
| * | | | 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 remote-tracking branch 'public/bug8012'Nick Mathewson2013-01-22
|\ \ \ \ \