aboutsummaryrefslogtreecommitdiff
path: root/src/or/relay.c
Commit message (Collapse)AuthorAge
* Merge remote-tracking branch 'origin/maint-0.2.4'Nick Mathewson2014-02-11
|\
| * Don't treat END_STREAM_REASON_INTERNAL as total circuit failureNick Mathewson2014-02-09
| | | | | | | | | | | | | | It can happen because we sent something that got an ENETUNREACH response. Bugfix on 0.2.4.8-alpha; fixes a part of bug 10777.
* | Merge remote-tracking branch 'public/no_itime_queue'Nick Mathewson2014-02-10
|\ \ | | | | | | | | | | | | | | | | | | | | | | | | The conflicts here were tricky, and required me to eliminate the command-queue as well. That wasn't so hard. Conflicts: src/or/or.h src/or/relay.c
| * | Excise the insertion_time_elem_t logicNick Mathewson2014-02-10
| |/ | | | | | | | | | | It's now redundant with the inserted_time field in packed_cell_t Fixes bug 10870.
* | Remove 'struct timeval now' that was shadowing 'struct timeval now'.Nick Mathewson2013-11-18
| | | | | | | | | | | | This was a mistake in the merge commit 7a2b30fe16eacc040b3dd11. It would have made the CellStatistics code give completely bogus results. Bug not in any released Tor.
* | Merge remote-tracking branch 'origin/maint-0.2.4'Nick Mathewson2013-11-15
|\| | | | | | | | | | | | | | | Conflicts: src/or/relay.c Conflict changes were easy; compilation fixes required were using using TOR_SIMPLEQ_FIRST to get head of cell queue.
| * Merge remote-tracking branch 'origin/maint-0.2.3' into maint-0.2.4Nick Mathewson2013-11-15
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/or.h src/or/relay.c Conflicts were simple to resolve. More fixes were needed for compilation, including: reinstating the tv_to_msec function, and renaming *_conn_cells to *_chan_cells.
| | * Improved circuit queue out-of-memory handlerNick Mathewson2013-11-07
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Previously, when we ran low on memory, we'd close whichever circuits had the most queued cells. Now, we close those that have the *oldest* queued cells, on the theory that those are most responsible for us running low on memory, and that those are the least likely to actually drain on their own if we wait a little longer. Based on analysis from a forthcoming paper by Jansen, Tschorsch, Johnson, and Scheuermann. Fixes bug 9093.
* | | Add missing includes for circpathbias.hNick Mathewson2013-10-31
| | |
* | | Add some clarity and checks to cell_queue_append_packed_copyNick Mathewson2013-10-30
| | | | | | | | | | | | | | | It's not cool to have "circ may be NULL if use_stats false, but otherwise we crash" as an undocumented API constraint. :)
* | | Merge branch 'morestats4' into morestats5Karsten Loesing2013-10-28
|\ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: doc/tor.1.txt src/or/config.c src/or/connection.h src/or/control.c src/or/control.h src/or/or.h src/or/relay.c src/or/relay.h src/test/test.c
| * | | Tweak CELL_STATS event based on comments by nickm.Karsten Loesing2013-05-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | - Move cell_command_to_string from control.c to command.c. - Use accessor for global_circuitlist instead of extern. - Add a struct for cell statistics by command instead of six arrays. - Split up control_event_circuit_cell_stats by using two helper functions. - Add TestingEnableCellStatsEvent option. - Prepare functions for testing. - Rename a few variables and document a few things better.
| * | | Add new CELL_STATS event.Karsten Loesing2013-05-16
| | | | | | | | | | | | | | | | Jointly authored with Rob Jansen <jansen@cs.umn.edu>.
* | | | 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).