aboutsummaryrefslogtreecommitdiff
path: root/src/or
AgeCommit message (Collapse)Author
2018-04-25Merge branch 'maint-0.3.2' into maint-0.3.3Nick Mathewson
2018-04-25Merge branch 'maint-0.3.1' into maint-0.3.2Nick Mathewson
2018-04-25Fix a copy-paste error in the fix for #23693.Nick Mathewson
Found by coverity; CID 25912; bug not in any released Tor.
2018-04-24Merge branch 'maint-0.3.2' into maint-0.3.3Nick Mathewson
2018-04-24Merge remote-tracking branch 'dgoulet/bug25901_032_01' into maint-0.3.2Nick Mathewson
2018-04-24Merge branch 'maint-0.3.2' into maint-0.3.3Nick Mathewson
2018-04-24Merge branch 'maint-0.3.1' into maint-0.3.2Nick Mathewson
2018-04-23hs: Fix memleak in v3 on SIGHUPDavid Goulet
Fixes #25901 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-04-22Allow cpuworkers to exist without onion keysNick Mathewson
Now that we allow cpuworkers for dirport-only hosts (to fix 23693), we need to allow dup_onion_keys() to succeed for them. The change to construct_ntor_key_map() is for correctness, but is not strictly necessary.
2018-04-17heartbeat: Log the number of circuits killed because too many cellsDavid Goulet
We recently merged a circuit cell queue size safeguard. This commit adds the number of killed circuits that have reached the limit to the DoS heartbeat. It now looks like this: [notice] DoS mitigation since startup: 0 circuits killed with too many cells. 0 circuits rejected, 0 marked addresses. 0 connections closed. 0 single hop clients refused. Second thing that this patch does. It makes tor always print the DoS mitigation heartbeat line (for a relay) even though no DoS mitigation have been enabled. The reason is because we now kill circuits that have too many cells regardless on if it is enabled or not but also it will give the operator a chance to learn what is enabled with the heartbeat instead of suddenly appearing when it is enabled by let say the consensus. Fixes #25824 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-04-16Merge remote-tracking branch 'dgoulet/bug25226_033_02' into maint-0.3.3Nick Mathewson
2018-04-16relay: Implement a circuit cell queue maximum sizeDavid Goulet
This commit introduces the consensus parameter "circ_max_cell_queue_size" which controls the maximum number of cells a circuit queue should have. The default value is currently 50000 cells which is above what should be expected but keeps us a margin of error for padding cells. Related to this is #9072. Back in 0.2.4.14-alpha, we've removed that limit due to a Guard discovery attack. Ticket #25226 details why we are putting back the limit due to the memory pressure issue on relays. Fixes #25226 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-04-12Refine extend_info_for_node's "enough info" check once again.Nick Mathewson
In d1874b433953f64, we adjusted this check so that we insist on using routerinfos for bridges. That's almost correct... but if we have a bridge that is also a regular relay, then we should use insist on its routerinfo when connecting to it as a bridge (directly), and be willing to use its microdescriptor when connecting to it elsewhere in our circuits. This bug is a likely cause of some (all?) of the (exit_ei == NULL) failures we've been seeing. Fixes bug 25691; bugfix on 0.3.3.4-alpha
2018-04-12Attempt to fix 32-bit builds, which broke with 31508a0abccfee1cdNick Mathewson
When size_t is 32 bits, doing "size_t ram; if (ram > 8GB) { ... }" produces a compile-time warning. Bug caused by #24782 fix; not in any released Tor.
2018-04-12Use less memory for MaxMemInQueues for machines with more than 8 GB of RAM.Alexander Færøy
This patch changes the algorithm of compute_real_max_mem_in_queues() to use 0.4 * RAM iff the system has more than or equal to 8 GB of RAM, but will continue to use the old value of 0.75 * RAM if the system have less than * GB of RAM available. This patch also adds tests for compute_real_max_mem_in_queues(). See: https://bugs.torproject.org/24782
2018-04-12Use STATIC for compute_real_max_mem_in_queuesAlexander Færøy
This patch makes compute_real_max_mem_in_queues use the STATIC macro, which allows us to test the function. See: https://bugs.torproject.org/24782
2018-04-11Merge branch 'bug25581_033_v2_asn_squashed' into maint-0.3.3Nick Mathewson
2018-04-11Rename HSLayer{2,3}Nodes to start without an underscore.Nick Mathewson
The old single-underscore names remain as a deprecated synonym. Fixes bug 25581; bugfix on 0.3.3.1-alpha.
2018-04-11Bug 24989: Count client hsdir gets towards MaxClientCircuitsPending.Mike Perry
We removed this by breaking them out from general in #13837.
2018-04-10Fix another crash-on-no-threadpool bug.Nick Mathewson
This one happens if for some reason you start with DirPort enabled but server mode turned off entirely. Fixes a case of bug 23693; bugfix on 0.3.1.1-alpha.
2018-04-10Merge branch 'maint-0.3.1' into maint-0.3.2Nick Mathewson
2018-04-10Merge branch 'maint-0.3.2' into maint-0.3.3Nick Mathewson
2018-04-10Merge branch 'maint-0.2.9' into maint-0.3.1Nick Mathewson
2018-04-10Merge remote-tracking branch 'ahf-github/bugs/24854_029_2' into maint-0.2.9Nick Mathewson
2018-04-09Lift the list of default directory servers into their own file.Alexander Færøy
This patch lifts the list of default directory authorities from config.c into their own auth_dirs.inc file, which is then included in config.c using the C preprocessor. Patch by beastr0. See: https://bugs.torproject.org/24854
2018-04-04relay: Remove max middle cells dead codeDavid Goulet
Next commit is addressing the circuit queue cell limit so cleanup before doing anything else. Part of #25226 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-04-04Merge branch 'bug21394_029_redux' into maint-0.3.3Nick Mathewson
2018-04-04Bug 21394 touchup: Increase DNS attempts to 3Dhalgren
Also don't give up on a resolver as quickly if multiple are configured.
2018-04-02protover: Change protover_all_supported() to return only unsupported.Isis Lovecruft
Previously, if "Link=1-5" was supported, and you asked protover_all_supported() (or protover::all_supported() in Rust) if it supported "Link=3-999", the C version would return "Link=3-999" and the Rust would return "Link=6-999". These both behave the same now, i.e. both return "Link=6-999".
2018-04-02dir auths no longer vote Guard if they're not voting V2DirRoger Dingledine
Directory authorities no longer vote in favor of the Guard flag for relays that don't advertise directory support. Starting in Tor 0.3.0.1-alpha, Tor clients have been avoiding using such relays in the Guard position, leading to increasingly broken load balancing for the 5%-or-so of Guards that don't advertise directory support. Fixes bug 22310; bugfix on 0.3.0.6.
2018-03-29Merge branch 'bug25617_029' into maint-0.3.3Nick Mathewson
2018-03-29Mark controller-initiated DNS lookups as permitted to do DNS.Nick Mathewson
Fixes bug 25617; bugfix on 0.2.9.3-alpha.
2018-03-28Merge remote-tracking branch 'dgoulet/bug24767_033_03' into maint-0.3.3Nick Mathewson
2018-03-28Allow IPv6 address strings to be used as hostnames in SOCKS5 requestsrl1987
2018-03-27Merge branch 'maint-0.2.9' into maint-0.3.1Nick Mathewson
2018-03-27Fix CID 1430932Taylor Yu
Coverity found a null pointer reference in nodelist_add_microdesc(). This is almost certainly impossible assuming that the routerstatus_t returned by router_get_consensus_status_by_descriptor_digest() always corresponds to an entry in the nodelist. Fixes bug 25629.
2018-03-27Fix CID 1430932Taylor Yu
Coverity found a null pointer reference in nodelist_add_microdesc(). This is almost certainly impossible assuming that the routerstatus_t returned by router_get_consensus_status_by_descriptor_digest() always corresponds to an entry in the nodelist. Fixes bug 25629.
2018-03-27Fix CID 1430932Taylor Yu
Coverity found a null pointer reference in nodelist_add_microdesc(). This is almost certainly impossible assuming that the routerstatus_t returned by router_get_consensus_status_by_descriptor_digest() always corresponds to an entry in the nodelist. Fixes bug 25629.
2018-03-27test: Add unittest for the OR connection failure cacheGeorge Kadianakis
Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-03-27relay: Avoid connecting to down relaysDavid Goulet
If we failed to connect at the TCP level to a relay, note it down and refuse to connect again for another 60 seconds. Fixes #24767 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-03-27Merge branch 'bug25213_033' into maint-0.3.3Nick Mathewson
2018-03-26Merge remote-tracking branch 'dgoulet/bug24904_033_01' into maint-0.3.3Nick Mathewson
2018-03-26Merge branch 'bug24903_029' into maint-0.3.3Nick Mathewson
2018-03-26Make extend_info_from_node() more picky about node contentsNick Mathewson
This update is needed to make it consistent with the behavior of node_awaiting_ipv6(), which doesn't believe in the addresses from routerinfos unless it actually plans to use those routerinfos. Fixes bug 25213; bugfix on b66b62fb7525cac1e1 in 0.3.3.1-alpha, which tightened up the definition of node_awaiting_ipv6().
2018-03-26When extending a circuit's path length, clear onehop_tunnel.Nick Mathewson
There was a nonfatal assertion in pathbias_should_count that would trigger if onehop_tunnel was set, but the desired_path_length was greater than 1. This patch fixes that. Fixes bug 24903; bugfix on 0.2.5.2-alpha.
2018-03-23Fix windows compilation warnings in hs_service.cNick Mathewson
These were breaking jenkins builds. Bugfix on 5804ccc9070dc54; bug not in any released Tor.
2018-03-23chan: Use channel_is_client() in channel_do_open_actions()David Goulet
Make sure we actually only report client channel to the geoip cache instead of looking if it is a known relay. Looking if it is a known relay can be unreliable because they come and go from the consensus. Fixes #24904 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-03-20Merge branch 'bug25306_032_01_squashed_v2' into maint-0.3.3Nick Mathewson
2018-03-20hs-v3: BUG() on missing descriptors during rotationDavid Goulet
Because of #25306 for which we are unable to reproduce nor understand how it is possible, this commit removes the asserts() and BUG() on the missing descriptors instead when rotating them. This allows us to log more data on error but also to let tor recover gracefully instead of dying. Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-03-20Log information on specific compression backends in the OOM handler.Alexander Færøy
This patch adds some additional logging to circuits_handle_oom() to give us more information about which specific compression backend that is using a certain amount of memory. See: https://bugs.torproject.org/25372