aboutsummaryrefslogtreecommitdiff
path: root/src/or/relay.c
Commit message (Collapse)AuthorAge
* Merge remote-tracking branch 'origin/maint-0.2.4'Nick Mathewson2013-10-08
|\ | | | | | | | | Conflicts: src/or/relay.c
| * Generate bootstrapping status messages for microdescs tooNick Mathewson2013-10-08
| | | | | | | | Fix for 9927.
* | don't lie about bootstrap progress when clients use bridgesRoger Dingledine2013-10-08
| | | | | | | | | | we were listing 50% as soon as we got a bridge's relay descriptor, even if we didn't have any consensus, certificates, etc yet.
* | Rename circuit_get_global_list to remove trailing _Nick Mathewson2013-08-15
| |
* | Merge remote-tracking branch 'majek/bug9108'Nick Mathewson2013-08-15
|\ \ | | | | | | | | | | | | Conflicts: src/or/circuitlist.h
| * | Fix #9108 - make global_circuitlist a doubly linked listMarek Majkowski2013-06-20
| | |
* | | Unit tests for cell queues.Nick Mathewson2013-07-18
| | | | | | | | | | | | | | | This removes some INLINE markers from functions that probably didn't need them.
* | | Use TOR_SIMPLEQ for packed_cell_tNick Mathewson2013-07-18
| | |
* | | Completely refactor how FILENAME_PRIVATE worksNick Mathewson2013-07-10
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We previously used FILENAME_PRIVATE identifiers mostly for identifiers exposed only to the unit tests... but also for identifiers exposed to the benchmarker, and sometimes for identifiers exposed to a similar module, and occasionally for no really good reason at all. Now, we use FILENAME_PRIVATE identifiers for identifiers shared by Tor and the unit tests. They should be defined static when we aren't building the unit test, and globally visible otherwise. (The STATIC macro will keep us honest here.) For identifiers used only by the unit tests and never by Tor at all, on the other hand, we wrap them in #ifdef TOR_UNIT_TESTS. This is not the motivating use case for the split test/non-test build system; it's just a test example to see how it works, and to take a chance to clean up the code a little.
* | Merge remote-tracking branch 'origin/maint-0.2.4'Nick Mathewson2013-06-18
|\|
| * Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson2013-06-18
| |\ | | | | | | | | | | | | | | | Conflicts: src/or/config.c src/or/relay.c
| | * Implement a real OOM-killer for too-long circuit queues.Nick Mathewson2013-06-18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This implements "algorithm 1" from my discussion of bug #9072: on OOM, find the circuits with the longest queues, and kill them. It's also a fix for #9063 -- without the side-effects of bug #9072. The memory bounds aren't perfect here, and you need to be sure to allow some slack for the rest of Tor's usage. This isn't a perfect fix; the rest of the solutions I describe on codeable.
* | | Merge branch 'bug9072-024' into bug9072-025Andrea Shepard2013-06-15
|\| |
| * | Merge branch 'bug9072-023' into bug9072-024Andrea Shepard2013-06-15
| |\|
| | * Disable middle relay queue overfill detection code due to possible guard ↵Andrea Shepard2013-06-15
| | | | | | | | | | | | discovery attack
| | * Don't queue more cells as a middle relay than the spec allows to be in flightAndrea Shepard2013-06-13
| | |
| * | Don't queue more cells as a middle relay than the spec allows to be in flightAndrea Shepard2013-06-13
| | |
* | | Merge branch 'circuit_queue_cap-0.2.5-squashed'Nick Mathewson2013-06-14
|\ \ \ | | | | | | | | | | | | | | | | Conflicts: src/or/relay.c
| * | | Fix signed/unsigned comparison warningNick Mathewson2013-06-14
| | | |
| * | | Don't queue more cells as a middle relay than the spec allows to be in flightAndrea Shepard2013-06-13
| | | |
* | | | Merge remote-tracking branch 'public/bug7912_squashed'Nick Mathewson2013-06-13
|\ \ \ \ | |/ / / |/| | |
| * | | Add destroy balance tracking and logging to circuitmuxAndrea Shepard2013-06-13
| | | |
| * | | Implementation of a fix for bug 7912Nick Mathewson2013-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I added the code to pass a destroy cell to a queueing function rather than writing it immediately, and the code to remember that we shouldn't reuse the circuit id until the destroy is actually sent, and the code to release the circuit id once the destroy has been sent... and then I finished by hooking destroy_cell_queue into the rest of Tor.
* | | | Restore 8093 log messages to WARN severity, but rate limitNick Mathewson2013-05-21
| |/ / |/| | | | | | | | See #8093 for discussion
* | | Downgrade the unexpected sendme cell warnings for 0.2.4Nick Mathewson2013-05-21
| | | | | | | | | | | | See discussion on #8093
* | | Merge remote-tracking branch 'public/bug8185_diagnostic' into maint-0.2.4Nick Mathewson2013-04-11
|\ \ \ | |/ / |/| |
| * | Debugging log for bug 8185Nick Mathewson2013-03-19
| | | | | | | | | | | | If the bug recurs, log the filename and line number that triggered it
* | | Merge remote-tracking branch 'public/bug8475_023' into maint-0.2.4Nick Mathewson2013-03-20
|\ \ \ | |/ / |/| |
| * | Apply ClientDNSRejectInternalAddresses to IPv6 in RESOLVED cellsNick Mathewson2013-03-14
| |/ | | | | | | Fixes bug 8475; bugfix on 0.2.0.7-alpha.
* | Merge branch 'bug7582_v2' into maint-0.2.4Nick Mathewson2013-03-19
|\ \
| * | On END_REASON_EXITPOLICY, mark circuit as unusable for that address.Nick Mathewson2013-03-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, don't call the exit node 'reject *' unless our decision to pick that node was based on a non-summarized version of that node's exit policy. rransom and arma came up with the ideas for this fix. Fix for 7582; the summary-related part is a bugfix on 0.2.3.2-alpha.
* | | Merge remote-tracking branch 'public/bug6174' into maint-0.2.4Nick Mathewson2013-03-18
|\ \ \
| * | | Stop frobbing timestamp_dirty as our sole means to mark circuits unusableNick Mathewson2013-02-19
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In a number of places, we decrement timestamp_dirty by MaxCircuitDirtiness in order to mark a stream as "unusable for any new connections. This pattern sucks for a few reasons: * It is nonobvious. * It is error-prone: decrementing 0 can be a bad choice indeed. * It really wants to have a function. It can also introduce bugs if the system time jumps backwards, or if MaxCircuitDirtiness is increased. So in this patch, I add an unusable_for_new_conns flag to origin_circuit_t, make it get checked everywhere it should (I looked for things that tested timestamp_dirty), and add a new function to frob it. For now, the new function does still frob timestamp_dirty (after checking for underflow and whatnot), in case I missed any cases that should be checking unusable_for_new_conns. Fixes bug 6174. We first used this pattern in 516ef41ac1fd26f338c, which I think was in 0.0.2pre26 (but it could have been 0.0.2pre27).
* / / Handle TRUNCATE correctly if our next channel isn't done yet.Nick Mathewson2013-03-18
|/ / | | | | | | Patch from 'cypherpunks'. Fixes bug #7947. Bugfix on 0.0.7.1.
* | 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
| * | Allow a v4 link protocol for 4-byte circuit IDs.Nick Mathewson2012-11-06
| | | | | | | | | | | | | | | | | | Implements proposal 214. Needs testing.
* | | Suppress a coverity false positive in connection_edge_package_raw_inbufNick Mathewson2013-02-11
| | | | | | | | | | | | | | | | | | | | | Coverity is worried that we're checking entry_conn in some cases, but not in the case where we set entry_conn->pending_optimistic_data. This commit should calm it down (CID 718623).
* | | Add explicit check for !first_conn in ...resume_edge_reading_helperNick Mathewson2013-02-08
| | | | | | | | | | | | | | | | | | This check isn't necessary (see comment on #7801), but it took at least two smart people a little while to see why it wasn't necessary, so let's have it in to make the code more readable.
* | | Improve comment about our random stream choice algorithmNick Mathewson2013-02-08
| | |
* | | Fix numerous problems with Tor's weak RNG.Nick Mathewson2013-02-08
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need a weak RNG in a couple of places where the strong RNG is both needless and too slow. We had been using the weak RNG from our platform's libc implementation, but that was problematic (because many platforms have exceptionally horrible weak RNGs -- like, ones that only return values between 0 and SHORT_MAX) and because we were using it in a way that was wrong for LCG-based weak RNGs. (We were counting on the low bits of the LCG output to be as random as the high ones, which isn't true.) This patch adds a separate type for a weak RNG, adds an LCG implementation for it, and uses that exclusively where we had been using the platform weak RNG.
* | | Merge branch 'bug7902'Nick Mathewson2013-02-07
|\ \ \
| * | | Adjust control_reason when adjusting reason (related to 7902)Nick Mathewson2013-01-16
| | | |
| * | | When we get an END cell before CONNECTED, don't report SOCKS successNick Mathewson2013-01-16
| | | | | | | | | | | | | | | | Bug 7902; fix on 0.1.0.1-rc.
* | | | Merge branch 'rename_log_7599'Nick Mathewson2013-02-01
|\ \ \ \
| * | | | fix wide lines from tor_log renameNick Mathewson2013-02-01
| | | | |
| * | | | 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.
* / / / 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.
* | | Update the copyright date to 201.Nick Mathewson2013-01-16
| | |
* | | Merge remote-tracking branch 'origin/maint-0.2.3'Nick Mathewson2013-01-15
|\ \ \ | | |/ | |/|