aboutsummaryrefslogtreecommitdiff
path: root/src/core/mainloop
AgeCommit message (Collapse)Author
2021-05-17Merge branch 'maint-0.4.5' into maint-0.4.6Nick Mathewson
2021-05-12conn: MetricsPort listener is a listener portDavid Goulet
The connection type for the listener part was missing from the "is connection a listener" function. This lead to our periodic event that retries our listeners to keep trying to bind() again on an already opened MetricsPort. Closes #40370 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-03-24fix some tiny typosRoger Dingledine
2021-03-17Merge branch 'mr/334'George Kadianakis
2021-03-17Implement rate limiting metrics.George Kadianakis
2021-03-17Implement port/file-descriptor exhaustion metric.George Kadianakis
This uses a heuristic that came up after a discussion with David. I'm leaving this as a separate commit so that it can be discussed further if needed.
2021-03-17Merge branch 'tor-gitlab/mr/337'David Goulet
2021-03-17Add a DormantTimeoutEnabled to disable dormant mode entirelyNick Mathewson
(If you need to do this in an older version you can just set DormantClientTimeout to something huge.) Closes #40228.
2021-03-12Update copyrights to 2021, using "make update-copyright"Nick Mathewson
2021-02-22relay: Remove dirport reachability self testDavid Goulet
Regular relays are about to get their DirPort removed so that reachability test is not useful anymore Authorities will still use the DirPort but because network reentry towards their DirPort is now denied network wide, this test is not useful anymore and so it should simply be considered reachable at all time. Part of #40282 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs-v2: Removal of service and relay supportDavid Goulet
This is unfortunately massive but both functionalities were extremely intertwined and it would have required us to actually change the HSv2 code in order to be able to split this into multiple commits. After this commit, there are still artefacts of v2 in the code but there is no more support for service, intro point and HSDir. The v2 support for rendezvous circuit is still available since that code is the same for the v3 and we will leave it in so if a client is able to rendezvous on v2 then it can still transfer traffic. Once the entire network has moved away from v2, we can remove v2 rendezvous point support. Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19hs-v2: Remove client supportDavid Goulet
Related to #40266 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-19Merge remote-tracking branch 'tor-gitlab/mr/308'George Kadianakis
2021-02-17metrics: Handle the connection finished flushing eventDavid Goulet
Turns out, we forgot to add the METRICS connection type fo the finished flushing handler. Fixes #40295 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-08Merge branch 'maint-0.4.5'Nick Mathewson
2021-02-08conn: Properly close MetricsPort socket on EOFDavid Goulet
Handle the EOF situation for a metrics connection. Furthermore, if we failed to fetch the data from the inbuf properly, mark the socket as closed because the caller, connection_process_inbuf(), assumes that we did so on error. Fixes #40257 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-27src/core/mainloop: Put brackets around IPv6 addresses in log messagesNeel Chauhan
2021-01-12Merge branch 'maint-0.4.5'George Kadianakis
2021-01-12Merge branch 'ticket40237_044_01' into ticket40237_045_01David Goulet
2021-01-12Merge branch 'ticket40237_043_01' into ticket40237_044_01David Goulet
2021-01-12Merge branch 'ticket40237_035_01' into ticket40237_043_01David Goulet
2021-01-12hs-v3: Require reasonably live consensusDavid Goulet
Some days before this commit, the network experienced a DDoS on the directory authorities that prevented them to generate a consensus for more than 5 hours straight. That in turn entirely disabled onion service v3, client and service side, due to the subsystem requiring a live consensus to function properly. We know require a reasonably live consensus which means that the HSv3 subsystem will to its job for using the best consensus tor can find. If the entire network is using an old consensus, than this should be alright. If the service happens to use a live consensus while a client is not, it should still work because the client will use the current SRV it sees which might be the previous SRV for the service for which it still publish descriptors for. If the service is using an old one and somehow can't get a new one while clients are on a new one, then reachability issues might arise. However, this is a situation we already have at the moment since the service will simply not work if it doesn't have a live consensus while a client has one. Fixes #40237 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-12-18Merge remote-tracking branch 'tor-gitlab/mr/207'Alexander Færøy
2020-11-17Merge branch 'tor-gitlab/mr/182' into masterDavid Goulet
2020-11-17Merge remote-tracking branch 'tor-gitlab/mr/184' into masterNick Mathewson
2020-11-12Remove orconn_ext_or_id_map and related functionsNeel Chauhan
2020-11-12Fix typos.Samanta Navarro
Typos found with codespell. Please keep in mind that this should have impact on actual code and must be carefully evaluated: src/core/or/lttng_circuit.inc - ctf_enum_value("CONTROLER", CIRCUIT_PURPOSE_CONTROLLER) + ctf_enum_value("CONTROLLER", CIRCUIT_PURPOSE_CONTROLLER)
2020-11-03Abstract v2/v3 "write stats to file" logic into a single function.George Kadianakis
2020-11-03Introduce v3_stats_t structure and some of its methods.George Kadianakis
2020-11-02Make room for v3: s/hs_stats/hs_v2_stats/George Kadianakis
2020-10-27Stop forcing IPv4 and IPv6 traffic on non-SOCKSPortsNeel Chauhan
2020-10-27hs: Collect service traffic metricsDavid Goulet
Related to #40063 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-10-27conn: New Metrics listener portDavid Goulet
If MetricsPort is defined, listen on it and handle the incoming request. Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-10-15Also, include ed25519 identities in connection_describe().Nick Mathewson
Related to #22668.
2020-10-07Merge branch 'maint-0.3.5' into maint-0.4.3Nick Mathewson
2020-10-07Merge remote-tracking branch 'tor-gitlab/mr/79' into maint-0.3.5Nick Mathewson
2020-10-07Merge branch 'maint-0.4.3' into maint-0.4.4Nick Mathewson
2020-10-07Merge branch 'maint-0.3.5' into maint-0.4.3Nick Mathewson
2020-10-06Rename `OUTBOUND_ADDR_EXIT_AND_OR` to `OUTBOUND_ADDR_ANY`.Alexander Færøy
This patch renames the enumeration value in `outbound_addr_t` from `OUTBOUND_ADDR_EXIT_AND_OR` to `OUTBOUND_ADDR_ANY` since with the arrival of `OUTBOUND_ADDR_PT` it no longer makes sense to call the fallback value for "Exit and OR". Instead we rename it to "any". See: https://bugs.torproject.org/5304
2020-09-18Merge remote-tracking branch 'tor-gitlab/mr/137'Alexander Færøy
2020-09-01conn: Remove assert on new listener connection when retryingDavid Goulet
Opening a new listener connection can fail in many ways like a bind() permission denied on a low port for instance. And thus, we should expect to handle an error when creating a new one instead of assert() on it. To hit the removed assert: ORPort 80 KeepBindCapabilities 0 Start tor. Then edit torrc: ORPort <some-IP>:80 HUP tor and the assert is hit. Fixes #40073 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-08-25Merge remote-tracking branch 'tor-gitlab/mr/115'George Kadianakis
2020-08-11Merge remote-tracking branch 'tor-gitlab/mr/111'George Kadianakis
2020-08-11Merge branch 'maint-0.4.4'George Kadianakis
2020-08-11Merge remote-tracking branch 'tor-gitlab/mr/102' into maint-0.4.4George Kadianakis
2020-08-07Log number of inbound/outbound ipv4/6 conns as part of heartbeatNick Mathewson
Closes #29113
2020-08-05Replace several C identifiers for ticket 18106.Nick Mathewson
We used to have a single boolean, "FascistFirewall". Ages ago, in tickets #17840 and #9067, we added an improved "ReachableAddresses" mechanism. It's time to rename related identifiers in the code for consistency. This closes #18106. This is an automated commit, generated by this command: ./scripts/maint/rename_c_identifier.py \ fascist_firewall_allows_address reachable_addr_allows \ fascist_firewall_use_ipv6 reachable_addr_use_ipv6 \ fascist_firewall_prefer_ipv6_impl reachable_addr_prefer_ipv6_impl \ fascist_firewall_prefer_ipv6_orport reachable_addr_prefer_ipv6_orport \ fascist_firewall_prefer_ipv6_dirport reachable_addr_prefer_ipv6_dirport \ fascist_firewall_allows_address_addr reachable_addr_allows_addr \ fascist_firewall_allows_address_ap reachable_addr_allows_ap \ fascist_firewall_allows_base reachable_addr_allows_base \ fascist_firewall_allows_ri_impl reachable_addr_allows_ri_impl \ fascist_firewall_allows_rs_impl reachable_addr_allows_rs_impl \ fascist_firewall_allows_rs reachable_addr_allows_rs \ fascist_firewall_allows_md_impl reachable_addr_allows_md_impl \ fascist_firewall_allows_node reachable_addr_allows_node \ fascist_firewall_allows_dir_server reachable_addr_allows_dir_server \ fascist_firewall_choose_address_impl reachable_addr_choose_impl \ fascist_firewall_choose_address reachable_addr_choose \ fascist_firewall_choose_address_base reachable_addr_choose_base \ fascist_firewall_choose_address_rs reachable_addr_choose_from_rs \ fascist_firewall_choose_address_ls reachable_addr_choose_from_ls \ fascist_firewall_choose_address_node reachable_addr_choose_from_node \ fascist_firewall_choose_address_dir_server reachable_addr_choose_from_dir_server
2020-08-03Wipe address strings from connections before freeing them them.Nick Mathewson
This is a defense-in-depth fix; closes 6198.
2020-08-03Merge branch 'maint-0.4.4'George Kadianakis
2020-08-03Merge remote-tracking branch 'tor-gitlab/mr/79' into maint-0.4.4George Kadianakis