aboutsummaryrefslogtreecommitdiff
path: root/src/or
Commit message (Collapse)AuthorAge
* Update a comment and undef an identifierHEADmasterArlo Breault2014-06-23
| | | | * Trac #11452
* Thread support is now requiredNick Mathewson2014-06-20
| | | | | | | | | | | Long ago we supported systems where there was no support for threads, or where the threading library was broken. We shouldn't have do that any more: on every OS that matters, threads exist, and the OS supports running threads across multiple CPUs. This resolves tickets 9495 and 12439. It's a prerequisite to making our workqueue code work better, since sensible workqueue implementations don't split across multiple processes.
* Remove code for Windows CE supportNick Mathewson2014-06-20
| | | | | | | As far as I know, nobody has used this in ages. It would be a pretty big surprise if it had worked. Closes ticket 11446.
* Authorities also advertise caches-extra-infoNick Mathewson2014-06-20
| | | | | | (Whoops, thought I had committed this before) Improvement to 11683 fix. Based on patch from Karsten.
* Merge remote-tracking branch 'karsten/bug11683'Nick Mathewson2014-06-19
|\
| * Believe that v3 dirauths always serve extra infos.Karsten Loesing2014-05-05
| | | | | | | | | | | | | | | | Clients should always believe that v3 directory authorities serve extra-info documents, regardless of whether their server descriptor contains a "caches-extra-info" line or not. Fixes part of #11683.
* | whitespace fixesNick Mathewson2014-06-16
| |
* | Merge branch 'bug8746_v2_squashed'Nick Mathewson2014-06-14
|\ \ | | | | | | | | | | | | Conflicts: src/common/include.am
| * | New waitpid-handler functions to run callbacks when a child exits.Nick Mathewson2014-06-14
| | | | | | | | | | | | Also, move 'procmon' into libor_event library, since it uses libevent.
* | | Merge branch 'bug12184_diagnostic_squashed'Nick Mathewson2014-06-14
|\ \ \
| * | | Try to diagnose bug 12184Nick Mathewson2014-06-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Check for consistency between the queued destroy cells and the marked circuit IDs. Check for consistency in the count of queued destroy cells in several ways. Check to see whether any of the marked circuit IDs have somehow been marked longer than the channel has existed.
* | | | Merge branch 'bug12191_squashed'Nick Mathewson2014-06-13
|\ \ \ \
| * | | | Also raise the check for 0 circuit ID in created cell.Nick Mathewson2014-06-13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | And add a comment about why conditions that would cause us to drop a cell should get checked before actions that would cause us to send a destroy cell. Spotted by 'cypherpunks'. And note that these issues have been present since 0.0.8pre1 (commit 0da256ef), where we added a "shutting down" state, and started responding to all create cells with DESTROY when shutting down.
| * | | | Move circuit-id-in-use check for CREATE cells to before all other checksNick Mathewson2014-06-10
| |/ / / | | | | | | | | | | | | | | | | This means that we never send a DESTROY cell in response to an attempt to CREATE an existing circuit. Fixes bug 12191.
* | | | sandbox: Permit stat() of DataDir/statsNick Mathewson2014-06-13
| | | | | | | | | | | | | | | | | | | | | | | | This is a fix for another case of 12064 that alphawolf just spotted. There's already an 0.2.5.5 changelog entry for this.
* | | | whitespaces fixesNick Mathewson2014-06-11
| | | |
* | | | Merge remote-tracking branch 'public/ticket6799_024_v2_squashed'Nick Mathewson2014-06-11
|\ \ \ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: src/or/channel.c src/or/circuitlist.c src/or/connection.c Conflicts involved removal of next_circ_id and addition of unusable-circid tracking.
| * | | | Replace last_added_nonpadding with last_had_circuitsNick Mathewson2014-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The point of the "idle timeout" for connections is to kill the connection a while after it has no more circuits. But using "last added a non-padding cell" as a proxy for that is wrong, since if the last circuit is closed from the other side of the connection, we will not have sent anything on that connection since well before the last circuit closed. This is part of fixing 6799. When applied to 0.2.5, it is also a fix for 12023.
| * | | | Give each or_connection_t a slightly randomized idle_timeoutNick Mathewson2014-06-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of killing an or_connection_t that has had no circuits for the last 3 minutes, give every or_connection_t a randomized timeout, so that an observer can't so easily infer from the connection close time the time at which its last circuit closed. Also, increase the base timeout for canonical connections from 3 minutes to 15 minutes. Fix for ticket 6799.
* | | | | Merge remote-tracking branch 'public/bug11970'Nick Mathewson2014-06-11
|\ \ \ \ \
| * | | | | sandbox: revamp sandbox_getaddrinfo cacheingNick Mathewson2014-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old cache had problems: * It needed to be manually preloaded. (It didn't remember any address you didn't tell it to remember) * It was AF_INET only. * It looked at its cache even if the sandbox wasn't turned on. * It couldn't remember errors. * It had some memory management problems. (You can't use memcpy to copy an addrinfo safely; it has pointers in.) This patch fixes those issues, and moves to a hash table. Fixes bug 11970; bugfix on 0.2.5.1-alpha.
* | | | | | Merge remote-tracking branch 'public/not_bug8093'Nick Mathewson2014-06-11
|\ \ \ \ \ \
| * | | | | | Bulletproof our 11246 fix a little, based on recommendation from andrea.Nick Mathewson2014-06-04
| | | | | | |
| * | | | | | count DATA cells with stream ID 0 as delivered for SENDME purposesNick Mathewson2013-03-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Found while investigating 8093, but probably not the cause of it, since this bug would result in us sending too few SENDMEs, not in us receiving SENDMEs unexpectedly. Bugfix on the fix for 7889, which has appeared in 0.2.4.10-alpha, but not yet in any released 0.2.3.x version.
* | | | | | | Improved diagnostic log for bug 8387.Nick Mathewson2014-06-10
| |_|_|/ / / |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | When we find a stranded one-hop circuit, log whether it is dirty, log information about any streams on it, and log information about connections they might be linked to.
* | | | | | Merge remote-tracking branch 'public/bug12169_relay_check'Nick Mathewson2014-06-04
|\ \ \ \ \ \
| * | | | | | Use uint32 !=, not tor_memneq, for relay cell integrity checkingNick Mathewson2014-06-01
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | tor_memeq has started to show up on profiles, and this is one of the most frequent callers of that function, appearing as it does on every cell handled for entry or exit. 59f9097d5c3dc010847c359888d31757d1c97904 introduced tor_memneq here; it went into Tor 0.2.1.31. Fixes part of 12169.
* | | | | | | Merge remote-tracking branch 'andrea/bug10616'Nick Mathewson2014-06-04
|\ \ \ \ \ \ \
| * | | | | | | Squelch spurious LD_BUG message in connection_ap_handshake_socks_reply()Andrea Shepard2014-06-03
| |/ / / / / /
* | | | | | | Merge remote-tracking branch 'public/bug12195'Nick Mathewson2014-06-04
|\ \ \ \ \ \ \
| * | | | | | | Fix ancient code that only checked circ_id, not circ_id and chanNick Mathewson2014-06-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This code mis-handled the case where a circuit got the same circuit ID in both directions. I found three instances of it in the codebase, by grepping for [pn]_circ_id. Because of the issue in command_process_relay_cell(), this would have made roughly one circuit in a million completely nonfunctional. Fixes bug 12195.
* | | | | | | | Don't try to fetch bridge descriptors when DisableNetwork is setNick Mathewson2014-06-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Patch from Roger; changes file by me. Fixes 10405; bugfix on 0.2.3.9-alpha, where DisableNetwork was introduced.
* | | | | | | | Merge remote-tracking branch 'public/bug12170_024_v2'Nick Mathewson2014-06-02
|\ \ \ \ \ \ \ \ | |_|/ / / / / / |/| | | | | | |
| * | | | | | | Avoid needless router_dir_info_has_changed from router_set_statusNick Mathewson2014-06-02
| |/ / / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On some profiles of Andrea's from #11332, I found that a great deal of time can still be attributed to functions called from update_router_have_minimum_dir_info(). This is making our digestmap, tor_memeq, and siphash functions take a much bigger portion of runtime than they really should. If we're calling update_router_have_minimum_dir_info() too often, that's because we're calling router_dir_info_changed() too often. And it looks like most of the callers of router_dir_info_changed() are coming as tail-calls from router_set_status() as invoked by channel_do_open_actions(). But we don't need to call router_dir_info_changed() so much! (I'm not quite sure we need to call it from here at all, but...) Surely we don't need to call it from router_set_status when the router's status has not actually changed. This patch makes us call router_dir_info_changed() from router_set_status only when we are changing the router's status. Fix for bug 12170. This is leftover from our fix back in 273ee3e81 in 0.1.2.1-alpha, where we started caching the value of update_router_have_minimum_dir_info().
* | | | | | | sandbox: Allow DirPortFrontPage unconditionally if it's setNick Mathewson2014-05-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes 12114; bug not in any release. Improves fix for 12028
* | | | | | | sandbox: Correct fix for hs part of 12064Nick Mathewson2014-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Bugfix on cfd0ee514c279bc6c7b; bug not in any released version of tor
* | | | | | | Merge branch 'bug11965_v2'Nick Mathewson2014-05-23
|\ \ \ \ \ \ \
| * | | | | | | Postpone fetches based on should_delay_dir_fetch(), not DisableNetworkNick Mathewson2014-05-23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Without this fix, when running with bridges, we would try fetching directory info far too early, and have up to a 60 second delay if we started with bridge descriptors available. Fixes bug 11965. Fix on 0.2.3.6-alpha, arma thinks.
* | | | | | | | sandbox: allow reading of hidden service configuration files.Nick Mathewson2014-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes part of 12064
* | | | | | | | sandbox: refactor string-based option-unchanged tests to use a macroNick Mathewson2014-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There was too much code duplication in doing it the old way, and I nearly made a copy-and-paste error in the last commit.
* | | | | | | | sandbox: allow access to cookie files, approved-routersNick Mathewson2014-05-22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | fixes part of 12064
* | | | | | | | sandbox: allow access to various stats/*-stats filesMichael Wolf2014-05-22
| |_|_|/ / / / |/| | | | | | | | | | | | | | | | | | | | Fix for 12064 part 1
* | | | | | | Merge remote-tracking branch 'andrea/bug11476'Nick Mathewson2014-05-22
|\ \ \ \ \ \ \ | |/ / / / / / |/| | | | | |
| * | | | | | Eliminate #ifdef ENABLE_MEMPOOLS in packed_cell_new/free()Andrea Shepard2014-05-21
| | | | | | |
| * | | | | | Add --disable-mempools configure optionAndrea Shepard2014-05-12
| | | | | | |
* | | | | | | fix a wide lineNick Mathewson2014-05-20
| | | | | | |
* | | | | | | sandbox: support logfile rotationNick Mathewson2014-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes bug 12032; bugfix on 0.2.5.1-alpha
* | | | | | | sandbox: tolerate reloading with DirPortFrontPage setNick Mathewson2014-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Also, don't tolerate changing DirPortFrontPage. Fixes bug 12028; bugfix on 0.2.5.1-alpha.
* | | | | | | sandbox: Disallow options which would make us call exec()Nick Mathewson2014-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | None of the things we might exec() can possibly run under the sanbox, so rather than crash later, we have to refuse to accept the configuration nice and early. The longer-term solution is to have an exec() helper, but wow is that risky. fixes 12043; bugfix on 0.2.5.1-alpha
* | | | | | | sandbox: Permit access to stats/dirreq-statsNick Mathewson2014-05-20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This prevents a crash when rotating logs with dirreq-stats enabled fixes 12035; bugfix on 0.2.5.1-alpha.