David Goulet
a7aa22a4e7
hs: Retry rdv circuit if repurposed
...
This can happen if our measurement subsystem decides to snatch it.
Fixes #40696
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 15:05:44 -04:00
David Goulet
ca135a127d
Merge branch 'maint-0.4.7'
2022-10-26 15:01:43 -04:00
David Goulet
0a49e04691
Merge branch 'tor-gitlab/mr/635' into maint-0.4.7
2022-10-26 15:01:40 -04:00
David Goulet
a2ee39452a
Merge branch 'tor-gitlab/mr/633'
2022-10-26 14:58:21 -04:00
David Goulet
59008c6f51
hs: Change the error for a collapsing client circuit
...
Change it to an "unreachable" error so the intro point can be retried
and not flagged as a failure and never retried again.
Closes #40692
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 14:56:45 -04:00
David Goulet
bb9f2ea8fb
Merge branch 'maint-0.4.7'
2022-10-26 14:21:41 -04:00
David Goulet
a317326aae
Merge branch 'maint-0.4.5' into maint-0.4.7
2022-10-26 14:21:41 -04:00
David Goulet
7a851e8983
Merge branch 'tor-gitlab/mr/631' into maint-0.4.5
2022-10-26 14:21:35 -04:00
David Goulet
efad436432
dirauth: Remove Faravahar
...
Closes #40688
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 14:20:07 -04:00
David Goulet
4a7824b9ae
Merge branch 'maint-0.4.7'
2022-10-26 14:12:51 -04:00
David Goulet
e19cf2dac6
Merge branch 'maint-0.4.5' into maint-0.4.7
2022-10-26 14:12:51 -04:00
David Goulet
b113b08722
Merge branch 'maint-0.4.7'
2022-10-26 14:07:49 -04:00
David Goulet
b20f72943e
Merge branch 'tor-gitlab/mr/629' into maint-0.4.7
2022-10-26 14:06:33 -04:00
David Goulet
a2c034d8f5
dos: Apply circuit creation defenses if circ max queue cell reached
...
This adds two consensus parameters to control the outbound max circuit
queue cell size limit and how many times it is allowed to reach that
limit for a single client IP.
Closes #40680
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-26 14:05:28 -04:00
Roger Dingledine
c56980f5e5
use consensus ip:port for dir auths if different
...
Directory authorities and relays now interact properly with directory
authorities if they change addresses. In the past, they would continue
to upload votes, signatures, descriptors, etc to the hard-coded address
in the configuration. Now, if the directory authority is listed in
the consensus at a different address, they will direct queries to this
new address.
Specifically, these three activities have changed:
* Posting a vote, a signature, or a relay descriptor to all the dir auths.
* Dir auths fetching missing votes or signatures from all the dir auths.
* Dir auths fetching new descriptors from a specific dir auth when they
just learned about them from that dir auth's vote.
We already do this desired behavior (prefer the address in the consensus,
but fall back to the hard-coded dirservers info if needed) when fetching
missing certs.
There is a fifth case, in router_pick_trusteddirserver(), where clients
and relays are trying to reach a random dir auth to fetch something. I
left that case alone for now because the interaction with fallbackdirs
is complicated.
Implements ticket 40705.
2022-10-25 04:19:37 -04:00
David Goulet
4ed67fe174
changes: Ticket 40694
...
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-24 11:14:50 -04:00
David Goulet
6300a9548d
hs: Retry rdv circuit if repurposed
...
This can happen if our measurement subsystem decides to snatch it.
Fixes #40696
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-24 11:03:38 -04:00
Roger Dingledine
bab8375ef5
dir auths now omit Measured= if rs->is_authority
...
Directory authorities stop voting a consensus "Measured" weight
for relays with the Authority flag. Now these relays will be
considered unmeasured, which should reserve their bandwidth
for their dir auth role and minimize distractions from other roles.
In place of the "Measured" weight, they now include a
"MeasuredButAuthority" weight (not used by anything) so the bandwidth
authority's opinion on this relay can be recorded for posterity.
Resolves ticket 40698.
2022-10-24 04:34:49 -04:00
Roger Dingledine
e6899dcdf4
fix typo in #40673 's changes file
2022-10-20 19:46:27 -04:00
David Goulet
8463111c9b
hs: Change the error for a collapsing client circuit
...
Change it to an "unreachable" error so the intro point can be retried
and not flagged as a failure and never retried again.
Closes #40692
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-19 14:41:48 -04:00
David Goulet
938070f5c4
dirauth: Change dizum IP address
...
Closes #40687
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-18 10:35:54 -04:00
David Goulet
e86833ade6
Merge branch 'maint-0.4.5' into maint-0.4.7
2022-10-14 09:12:23 -04:00
David Goulet
28413e7560
Merge branch 'maint-0.4.7'
2022-10-14 09:12:23 -04:00
Nick Mathewson
e531d4d1b9
Fix a completely wrong calculation in mach monotime_init_internal()
...
Bug 1: We were purporting to calculate milliseconds per tick, when we
*should* have been computing ticks per millisecond.
Bug 2: Instead of computing either one of those, we were _actually_
computing femtoseconds per tick.
These two bugs covered for one another on x86 hardware, where 1 tick
== 1 nanosecond. But on M1 OSX, 1 tick is about 41 nanoseconds,
causing surprising results.
Fixes bug 40684; bugfix on 0.3.3.1-alpha.
2022-10-13 13:40:10 -04:00
David Goulet
5080a4ff67
Merge branch 'maint-0.4.7'
2022-10-12 15:52:04 -04:00
David Goulet
d543db5ac0
relay: Add connection stats to MetricsPort
...
This adds the number of created and opened connections to the
MetricsPort for a relay for each connection type and direction.
Output looks like:
# HELP tor_relay_connections Connections metrics of this relay
# TYPE tor_relay_connections counter
tor_relay_connections{type="OR listener",direction="initiated",state="created"} 0
tor_relay_connections{type="OR listener",direction="received",state="created"} 0
tor_relay_connections{type="OR listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="OR listener",direction="received",state="opened"} 0
tor_relay_connections{type="OR",direction="initiated",state="created"} 5
tor_relay_connections{type="OR",direction="received",state="created"} 0
tor_relay_connections{type="OR",direction="initiated",state="opened"} 5
tor_relay_connections{type="OR",direction="received",state="opened"} 0
tor_relay_connections{type="Exit",direction="initiated",state="created"} 0
tor_relay_connections{type="Exit",direction="received",state="created"} 0
tor_relay_connections{type="Exit",direction="initiated",state="opened"} 0
tor_relay_connections{type="Exit",direction="received",state="opened"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="created"} 0
tor_relay_connections{type="Socks listener",direction="received",state="created"} 0
tor_relay_connections{type="Socks listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="Socks listener",direction="received",state="opened"} 0
tor_relay_connections{type="Socks",direction="initiated",state="created"} 0
tor_relay_connections{type="Socks",direction="received",state="created"} 0
tor_relay_connections{type="Socks",direction="initiated",state="opened"} 0
tor_relay_connections{type="Socks",direction="received",state="opened"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="created"} 0
tor_relay_connections{type="Directory listener",direction="received",state="created"} 0
tor_relay_connections{type="Directory listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="Directory listener",direction="received",state="opened"} 0
tor_relay_connections{type="Directory",direction="initiated",state="created"} 0
tor_relay_connections{type="Directory",direction="received",state="created"} 0
tor_relay_connections{type="Directory",direction="initiated",state="opened"} 0
tor_relay_connections{type="Directory",direction="received",state="opened"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="created"} 0
tor_relay_connections{type="Control listener",direction="received",state="created"} 0
tor_relay_connections{type="Control listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="Control listener",direction="received",state="opened"} 0
tor_relay_connections{type="Control",direction="initiated",state="created"} 0
tor_relay_connections{type="Control",direction="received",state="created"} 0
tor_relay_connections{type="Control",direction="initiated",state="opened"} 0
tor_relay_connections{type="Control",direction="received",state="opened"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="created"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="created"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="Transparent pf/netfilter listener",direction="received",state="opened"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="created"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="created"} 0
tor_relay_connections{type="Transparent natd listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="Transparent natd listener",direction="received",state="opened"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="created"} 0
tor_relay_connections{type="DNS listener",direction="received",state="created"} 0
tor_relay_connections{type="DNS listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="DNS listener",direction="received",state="opened"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="created"} 0
tor_relay_connections{type="Extended OR",direction="received",state="created"} 0
tor_relay_connections{type="Extended OR",direction="initiated",state="opened"} 0
tor_relay_connections{type="Extended OR",direction="received",state="opened"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="created"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="created"} 0
tor_relay_connections{type="Extended OR listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="Extended OR listener",direction="received",state="opened"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="created"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="created"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="HTTP tunnel listener",direction="received",state="opened"} 0
tor_relay_connections{type="Metrics listener",direction="initiated",state="created"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="created"} 1
tor_relay_connections{type="Metrics listener",direction="initiated",state="opened"} 0
tor_relay_connections{type="Metrics listener",direction="received",state="opened"} 1
tor_relay_connections{type="Metrics",direction="initiated",state="created"} 0
tor_relay_connections{type="Metrics",direction="received",state="created"} 0
tor_relay_connections{type="Metrics",direction="initiated",state="opened"} 0
tor_relay_connections{type="Metrics",direction="received",state="opened"} 0
Related to #40194
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-10-12 09:25:19 -04:00
David Goulet
4692cf8688
Merge branch 'maint-0.4.7'
2022-10-11 10:09:37 -04:00
Andy
d09414858e
Properly compute cell-drop overload fraction
...
Patch to address #40673 . An additional check has been added to
onion_pending_add() in order to ensure that we avoid counting create
cells from clients.
In the cpuworker.c assign_onionskin_to_cpuworker
method if total_pending_tasks >= max_pending_tasks
and channel_is_client(circ->p_chan) returns false then
rep_hist_note_circuit_handshake_dropped() will be called and
rep_hist_note_circuit_handshake_assigned() will not be called. This
causes relays to run into errors due to the fact that the number of
dropped packets exceeds the total number of assigned packets.
To avoid this situation a check has been added to
onion_pending_add() to ensure that these erroneous calls to
rep_hist_note_circuit_handshake_dropped() are not made.
See the #40673 ticket for the conversation with armadev about this issue.
2022-10-06 00:46:29 -04:00
David Goulet
0cc27ecfdc
Merge branch 'maint-0.4.7'
2022-08-12 09:56:54 -04:00
David Goulet
c4ff6a4f55
Merge branch 'maint-0.4.6' into maint-0.4.7
2022-08-12 09:56:54 -04:00
David Goulet
8244eefcd3
Merge branch 'maint-0.4.5' into maint-0.4.6
2022-08-12 09:56:54 -04:00
David Goulet
bb88086c72
geoip: Update geoip files with August 9th, 2022 database
...
Fixes #40658
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-08-12 09:56:50 -04:00
David Goulet
c142b59503
Merge branch 'maint-0.4.7'
2022-08-11 09:44:47 -04:00
David Goulet
9b4d3ed492
Merge branch 'maint-0.4.6' into maint-0.4.7
2022-08-11 09:44:47 -04:00
David Goulet
c65d8b2aad
Merge branch 'maint-0.4.5' into maint-0.4.6
2022-08-11 09:44:47 -04:00
Tor CI Release
65ffb97c2f
fallbackdir: Update list generated on August 11, 2022
2022-08-11 09:44:39 -04:00
Tor CI Release
f9acdd0630
Update geoip files to match ipfire location db, 2022/08/11.
2022-08-11 09:44:32 -04:00
David Goulet
c9232e8f3f
Merge branch 'maint-0.4.7'
2022-08-11 09:27:03 -04:00
Mike Perry
9fb52305ee
Add changes file for bug40642.
2022-08-11 09:26:51 -04:00
David Goulet
4d18f4aa9a
Merge branch 'maint-0.4.7'
2022-08-10 08:53:08 -04:00
Roger Dingledine
d48eaff86d
ignore families for L2 guard independence
...
mike is concerned that we would get too much exposure to adversaries,
if we enforce that none of our L2 guards can be in the same family.
this change set now essentially finishes the feature that commit a77727cdc
was attempting to add, but strips the "_and_family" part of that plan.
2022-08-09 16:39:26 -04:00
Roger Dingledine
7b1fffe0dd
make L2 vanguards actually independent
...
We had omitted some checks for whether our vanguards (second layer
guards from proposal 333) overlapped or came from the same family.
Now make sure to pick each of them to be independent.
Fixes bug 40639; bugfix on 0.4.7.1-alpha.
2022-08-09 14:47:11 -04:00
David Goulet
16664c0017
Merge branch 'maint-0.4.7'
2022-08-09 11:01:44 -04:00
David Goulet
8bf1a86ae1
dirauth: Make voting flag threshold tunable via torrc
...
Remove UPTIME_TO_GUARANTEE_STABLE, MTBF_TO_GUARANTEE_STABLE,
TIME_KNOWN_TO_GUARANTEE_FAMILIAR WFU_TO_GUARANTEE_GUARD and replace each
of them with a tunnable torrc option.
Related to #40652
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-08-09 11:01:12 -04:00
David Goulet
681c15a32d
dirauth: Add a AuthDirVoteGuard to pin Guard flags
...
Related to #40652
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-08-04 13:32:56 -04:00
David Goulet
5cc6ab0c1e
Merge branch 'maint-0.4.5' into maint-0.4.6
2022-08-02 16:14:02 -04:00
David Goulet
bf30943cb7
Merge branch 'maint-0.4.7'
2022-08-02 16:14:02 -04:00
David Goulet
eee35adf74
Merge branch 'maint-0.4.6' into maint-0.4.7
2022-08-02 16:14:02 -04:00
David Goulet
10d755ead5
Merge branch 'tor-gitlab/mr/608' into maint-0.4.5
2022-08-02 16:13:58 -04:00
David Goulet
e69cf2340b
Merge branch 'maint-0.4.5' into maint-0.4.6
2022-08-02 16:08:50 -04:00
David Goulet
4d3f42a6f2
Merge branch 'maint-0.4.7'
2022-08-02 16:08:50 -04:00
David Goulet
645eff49ac
Merge branch 'maint-0.4.6' into maint-0.4.7
2022-08-02 16:08:50 -04:00
David Goulet
6fcae8e0d0
relay: Don't send DESTROY remote reason backward or forward
...
Fixes #40649
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-08-02 15:53:31 -04:00
David Goulet
f51c68729f
Merge branch 'maint-0.4.7'
2022-08-02 15:31:00 -04:00
Mike Perry
af5ef98d1b
Changes file for bug 40644.
2022-08-02 18:13:46 +00:00
David Goulet
0c984e0ec2
conn: Notify btrack subsys on normal OR conn close
...
Fixes #40604
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-08-01 10:58:40 -04:00
David Goulet
e618a7e445
Merge branch 'maint-0.4.5' into maint-0.4.6
2022-07-27 11:33:19 -04:00
David Goulet
22cb4c23d0
Merge branch 'maint-0.4.7'
2022-07-27 11:33:19 -04:00
David Goulet
7654e12be8
Merge branch 'maint-0.4.6' into maint-0.4.7
2022-07-27 11:33:19 -04:00
Nick Mathewson
8e7bd96362
Fix a check, make a netflow padding function more safe.
...
Previously, `channelpadding_get_netflow_inactive_timeout_ms` would
crash with an assertion failure if `low_timeout` was greater than
`high_timeout`. That wasn't possible in practice because of checks
in `channelpadding_update_padding_for_channel`, but it's better not
to have a function whose correctness is this tricky to prove.
Fixes #40645 . Bugfix on 0.3.1.1-alpha.
2022-07-27 09:16:50 -04:00
David Goulet
ce1675ef65
Merge branch 'tor-gitlab/mr/601'
2022-07-26 16:18:04 -04:00
David Goulet
5260b4ef34
Merge branch 'maint-0.4.5' into maint-0.4.6
2022-07-26 16:16:04 -04:00
David Goulet
e98995bb08
Merge branch 'maint-0.4.6' into maint-0.4.7
2022-07-26 16:16:04 -04:00
David Goulet
028f5fd6ea
Merge branch 'maint-0.4.7'
2022-07-26 16:16:04 -04:00
David Goulet
ed74c52158
cmux: Remove a log bug that is actually an acceptable race
...
Closes #40647
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-07-26 16:14:09 -04:00
David Goulet
8d8afc4efa
relay: Send DESTROY cell instead of TRUNCATED cell
...
Note that with this commit, TRUNCATED cells won't be used anymore that
is client and relays won't emit them.
Fixes #40623
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-07-26 14:01:21 -04:00
David Goulet
b7f9a24c08
relay: Remove unused conn->ext_or_conn_id
...
This also incidently removes a use of uninitialized stack data from the
connection_or_set_ext_or_identifier() function.
Fixes #40648
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-07-26 11:56:33 -04:00
Nick Mathewson
da52d7206a
Merge remote-tracking branch 'tor-gitlab/mr/598'
2022-07-21 15:21:59 -04:00
Nick Mathewson
3cee70e87d
Merge remote-tracking branch 'tor-gitlab/mr/592'
2022-07-21 15:19:28 -04:00
Nick Mathewson
0bd2065062
Merge remote-tracking branch 'tor-gitlab/mr/591'
2022-07-21 15:19:24 -04:00
Alex Xu (Hello71)
b1545b6d18
Changes file for #40630 (LibreSSL 3.5 compatibility)
2022-07-19 16:18:29 -04:00
David Goulet
331204e100
Revert "cmux: Don't pick a marked for close circuit as active"
...
This reverts commit 4f1298e418
.
2022-06-23 10:55:56 -04:00
David Goulet
4f1298e418
cmux: Don't pick a marked for close circuit as active
...
Fixes #25312
Signed-off-by: David Goulet <dgoulet@torproject.org>
2022-06-23 09:44:25 -04:00
Neel Chauhan
5d2dc2d403
Add changes file for ticket #40431
2022-06-23 09:09:01 -04:00
Nick Mathewson
0dc9561f21
Add a missing "not" to a message.
...
Closes #40619 .
Bugfix on 0.2.5.4-alpha.
2022-06-17 12:00:09 -04:00
Tor CI Release
edde188cf2
release: ChangeLog and ReleaseNotes for 0.4.7.8
2022-06-17 10:10:16 -04:00
Tor CI Release
9cab60183d
fallbackdir: Update list generated on June 17, 2022
2022-06-17 10:04:15 -04:00
Tor CI Release
223886c118
Update geoip files to match ipfire location db, 2022/06/17.
2022-06-17 10:04:06 -04:00
David Goulet
7fc474bd3f
Merge branch 'maint-0.4.7'
2022-06-17 09:13:31 -04:00
Mike Perry
5a25374209
Add changes file for bug40626
2022-06-17 09:03:13 -04:00
Nick Mathewson
0eb21427c9
Don't add redundant quotes with escaped() in log messages.
...
The escaped() function and its kin already wrap their output in
quotes: there's no reason to do so twice.
I am _NOT_ making a corresponding change in calls that make the same
mistake in controller-related functions, however, due to the risk of
a compatibility break. :(
Closes #22723 .
2022-06-16 14:35:38 -04:00
David Goulet
1d6470a2a8
Merge branch 'maint-0.4.7'
2022-06-15 12:25:46 -04:00
Mike Perry
254ca6717f
Changes file for Bug 40612
2022-06-15 14:43:52 +00:00
Mike Perry
2ce5142718
Changes file for Bug #40603 .
2022-06-15 14:14:03 +00:00
Alex Xu (Hello71)
b65ffa6f06
Enable IP_BIND_ADDRESS_NO_PORT if supported
2022-06-15 08:35:40 -04:00
David Goulet
b733f9d6ac
Merge branch 'maint-0.4.7'
2022-06-02 16:11:04 -04:00
David Goulet
dc7902ed55
Merge branch 'tor-gitlab/mr/583' into maint-0.4.7
2022-06-02 16:09:56 -04:00
Mike Perry
89a273e7f7
Bug 40620: Changes file
2022-06-02 18:54:11 +00:00
Alex Xu (Hello71)
87b2ce6f84
Trigger OOS on bind failures ( fixes #40597 )
2022-05-21 21:30:06 -04:00
David Goulet
4f038d224f
Merge branch 'tor-gitlab/mr/489'
2022-05-16 08:51:00 -04:00
Alexander Færøy
4ba89c0ccc
Merge branch 'maint-0.4.5' into maint-0.4.6
2022-05-09 14:37:26 +00:00
Alexander Færøy
5f2b75aafd
Merge branch 'maint-0.4.6' into maint-0.4.7
2022-05-09 14:37:26 +00:00
Alexander Færøy
20112c13ac
Merge branch 'maint-0.4.7'
2022-05-09 14:37:26 +00:00
Alexander Færøy
c213c1b0d1
Add changes entry to tor!575.
...
See: tpo/core/tor#40601.
2022-05-09 14:35:42 +00:00
Nick Mathewson
853270a871
Merge remote-tracking branch 'tor-gitlab/mr/574'
2022-05-04 10:34:03 -04:00
Pierre Bourdon
42034ae9da
changes: add entry for MR !574
2022-05-04 08:00:10 +02:00
Nick Mathewson
8d5692a2f7
Changes file for mr 569
2022-05-03 10:05:04 -04:00
Tor CI Release
3ca370c8b1
release: ChangeLog and ReleaseNotes for 0.4.7.7
2022-04-27 10:00:27 -04:00
Tor CI Release
06ed65bd85
fallbackdir: Update list generated on April 27, 2022
2022-04-27 09:41:38 -04:00
Tor CI Release
2270648baa
Update geoip files to match ipfire location db, 2022/04/27.
2022-04-27 09:41:28 -04:00