Tor issueshttps://gitlab.torproject.org/tpo/core/tor/-/issues2020-06-27T13:53:47Zhttps://gitlab.torproject.org/tpo/core/tor/-/issues/25668Write a proposal for using two guards, not one2020-06-27T13:53:47ZNick MathewsonWrite a proposal for using two guards, not oneSee tor-dev discussion. This is a roadmapped item.See tor-dev discussion. This is a roadmapped item.Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/24659Wrap our sha2 interface in Rust which implements the appropriate traits2020-06-27T13:54:39ZIsis LovecruftWrap our sha2 interface in Rust which implements the appropriate traitsWe should wrap our usage of hash digest functions (and XOFs) in Rust types which implement the appropriate traits, yet still exposes the same API functionality we currently have in C. To keep this task small, I think we should start off ...We should wrap our usage of hash digest functions (and XOFs) in Rust types which implement the appropriate traits, yet still exposes the same API functionality we currently have in C. To keep this task small, I think we should start off with just the sha2 code for now. (Later, it's probably some copy-paste and a bit of refactoring to provide the same interface for other digests, and similar for XOFs.)
This ticket is probably slightly blocked on legacy/trac#24658, and in turn is blocking legacy/trac#23886.Tor: 0.3.4.x-finalIsis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/core/tor/-/issues/24660Wrap our PRNG interface(s) in Rust with appropriate traits2020-06-27T13:54:39ZIsis LovecruftWrap our PRNG interface(s) in Rust with appropriate traitsSimilar to legacy/trac#24659, we should provide a way to wrap our C code for getting randomness in Rust, while implementing the appropriate traits (from `rand`) so that we're able to switch in Rust implementations if we want later.
This...Similar to legacy/trac#24659, we should provide a way to wrap our C code for getting randomness in Rust, while implementing the appropriate traits (from `rand`) so that we're able to switch in Rust implementations if we want later.
This is also blocking legacy/trac#23886.Tor: 0.3.4.x-finalIsis LovecruftIsis Lovecrufthttps://gitlab.torproject.org/tpo/core/tor/-/issues/27461Windows: cast between incompatible function types in main2020-06-27T13:52:18ZteorWindows: cast between incompatible function types in main```
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src/ext -Isrc/ext -I../src/ext/trunnel -I../src/trunnel -I../src/common -Isrc/common -I../src/ext/trunnel -I../src/trunnel -I../src/or -Isrc/or -DSHARE_DATADIR="\"/mingw64/share\"...```
x86_64-w64-mingw32-gcc -DHAVE_CONFIG_H -I. -I.. -I../src/ext -Isrc/ext -I../src/ext/trunnel -I../src/trunnel -I../src/common -Isrc/common -I../src/ext/trunnel -I../src/trunnel -I../src/or -Isrc/or -DSHARE_DATADIR="\"/mingw64/share\"" -DLOCALSTATEDIR="\"/mingw64/var\"" -DBINDIR="\"/mingw64/bin\"" -I../src -I../src/common -I/c/OpenSSL-Win64/include -IC:/msys64/mingw64/include -g -O2 -fasynchronous-unwind-tables -Wall -fno-strict-aliasing -Waddress -Warray-bounds -Wdate-time -Wdouble-promotion -Wduplicate-decl-specifier -Wduplicated-cond -Wextra -Wfloat-conversion -Wignored-attributes -Wimplicit-fallthrough -Winit-self -Wlogical-op -Wmissing-field-initializers -Wmissing-format-attribute -Wmissing-noreturn -Wnormalized=nfkc -Wnull-dereference -Woverlength-strings -Woverride-init -Wshadow -Wshift-count-negative -Wshift-count-overflow -Wshift-negative-value -Wshift-overflow=2 -Wsizeof-array-argument -Wstrict-overflow=1 -Wsuggest-attribute=format -Wsuggest-attribute=noreturn -Wswitch-bool -Wsync-nand -Wtrampolines -Wunused-but-set-parameter -Wunused-but-set-variable -Wunused-const-variable=2 -Wunused-local-typedefs -Wvariadic-macros -W -Wfloat-equal -Wundef -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes -Wwrite-strings -Wredundant-decls -Wchar-subscripts -Wcomment -Wformat=2 -Wwrite-strings -Wnested-externs -Wbad-function-cast -Wswitch-enum -Waggregate-return -Wpacked -Wunused -Wunused-parameter -Wold-style-definition -Wmissing-declarations -Werror -MT src/or/main.o -MD -MP -MF $depbase.Tpo -c -o src/or/main.o ../src/or/main.c &&\
...
bash.exe : ../src/or/main.c: In function 'tor_run_main':
At line:2 char:5
+ & $commandPath $args 2>&1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (../src/or/main....'tor_run_main'::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
../src/or/main.c:4215:28: error: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'BOOL (*)(DWORD)' {aka 'int (*)(long unsigned int)'} [-Werror=cast-function-type]
PSETDEP setdeppolicy = (PSETDEP)GetProcAddress(hMod,
^
```
https://ci.appveyor.com/project/teor2345/tor/build/1.0.138/job/691be5b3uror0sok#L1146Tor: 0.3.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/27465Windows: cast between incompatible function types in address.c2020-06-27T13:52:18ZteorWindows: cast between incompatible function types in address.c```
bash.exe : ../src/common/address.c: In function 'get_interface_addresses_win32':
At line:2 char:5
+ & $commandPath $args 2>&1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (../src/common/a...dresses_...```
bash.exe : ../src/common/address.c: In function 'get_interface_addresses_win32':
At line:2 char:5
+ & $commandPath $args 2>&1
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (../src/common/a...dresses_win32'::String) [], RemoteException
+ FullyQualifiedErrorId : NativeCommandError
../src/common/address.c:1499:14: error: cast between incompatible function types from 'FARPROC' {aka 'long long int (*)()'} to 'ULONG (*)(ULONG, ULONG, void *, IP_ADAPTER_ADDRESSES_XP *, ULONG *)' {aka 'long unsigned int
(*)(long unsigned int, long unsigned int, void *, struct _IP_ADAPTER_ADDRESSES_XP *, long unsigned int *)'} [-Werror=cast-function-type]
if (!(fn = (GetAdaptersAddresses_fn_t)
^
```
https://ci.appveyor.com/project/teor2345/tor/build/1.0.152/job/g7dxnnck0r3p66n9#L1093Tor: 0.3.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/28096Windows 8.1 and 10 relays claim to be Windows 82020-06-27T13:51:52ZteorWindows 8.1 and 10 relays claim to be Windows 8In Windows 8.1, Microsoft changed the behaviour of the GetVersionEx function so that it returns 6.2 (Windows 8) for applications without a compatibility manifest. (For applications with a compatibility manifest, it returns the version in...In Windows 8.1, Microsoft changed the behaviour of the GetVersionEx function so that it returns 6.2 (Windows 8) for applications without a compatibility manifest. (For applications with a compatibility manifest, it returns the version in that manifest.)
https://docs.microsoft.com/en-au/windows/desktop/api/sysinfoapi/nf-sysinfoapi-getversionexa
We should change the version returned by Tor's uname function to "Windows 8 or later".Tor: 0.3.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/27212Why do bridges run the retry_dns callback?2020-06-27T13:52:31ZteorWhy do bridges run the retry_dns callback?In a4fcdc5dec, the following roles seem inconsistent:
```
+ CALLBACK(retry_dns, PERIODIC_EVENT_ROLE_ROUTER),
+ CALLBACK(check_dns_honesty, PERIODIC_EVENT_ROLE_RELAY),
```
It's probably unrelated, but I don't think clients write stats...In a4fcdc5dec, the following roles seem inconsistent:
```
+ CALLBACK(retry_dns, PERIODIC_EVENT_ROLE_ROUTER),
+ CALLBACK(check_dns_honesty, PERIODIC_EVENT_ROLE_RELAY),
```
It's probably unrelated, but I don't think clients write stats:
```
+ CALLBACK(write_stats_file, PERIODIC_EVENT_ROLE_ALL),
```
(Do onion services write stats?)
From https://trac.torproject.org/projects/tor/ticket/27080#comment:4Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/27237When the network doesn't have any exits, use the mid weight as the exit weight2020-06-27T13:52:30ZteorWhen the network doesn't have any exits, use the mid weight as the exit weightIf we're building onion service paths, all our circuit ends will be mids.
```
/* if the consensus has no exits, treat the exit fraction as 100% */
if (router_have_consensus_path() != CONSENSUS_PATH_EXIT) {
f_exit = 1.0;
}
```
...If we're building onion service paths, all our circuit ends will be mids.
```
/* if the consensus has no exits, treat the exit fraction as 100% */
if (router_have_consensus_path() != CONSENSUS_PATH_EXIT) {
f_exit = 1.0;
}
```
Bug fix on 55ad54e0146 in 0.2.6.2-alpha.Tor: 0.3.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/27236When checking usable exit descriptors, always check exit policies2020-06-27T13:52:30ZteorWhen checking usable exit descriptors, always check exit policiesWe need to check exit policies whenever we're counting the usable exit descriptors. At the moment, we only check exit policies for exits in ExitNodes.
```
SMARTLIST_FOREACH_BEGIN(myexits_unflagged, const node_t *, node) {
if (n...We need to check exit policies whenever we're counting the usable exit descriptors. At the moment, we only check exit policies for exits in ExitNodes.
```
SMARTLIST_FOREACH_BEGIN(myexits_unflagged, const node_t *, node) {
if (node_has_preferred_descriptor(node, 0) &&
node_exit_policy_rejects_all(node)) {
SMARTLIST_DEL_CURRENT(myexits_unflagged, node);
/* this node is not actually an exit */
np--;
/* this node is unusable as an exit */
nu--;
}
} SMARTLIST_FOREACH_END(node);
```Tor: 0.3.4.x-finalteorteorhttps://gitlab.torproject.org/tpo/core/tor/-/issues/24113We stop trying to download an md after 8 failed tries2020-06-27T13:55:06ZGeorge KadianakisWe stop trying to download an md after 8 failed triesThe config var `TestingMicrodescMaxDownloadTries` specifies the amount of times we are willing to try to download an md before we give up. It's set to 8 on the real network and 80 on the testnet.
This interacts badly with legacy/trac#21...The config var `TestingMicrodescMaxDownloadTries` specifies the amount of times we are willing to try to download an md before we give up. It's set to 8 on the real network and 80 on the testnet.
This interacts badly with legacy/trac#21969 since if we fail to fetch a primary guard md more than 8 times we will give up on it and refuse to bootstrap.Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/25967v3 onion keep working without the HiddenServiceVersion 3 line2021-09-30T13:46:30Zcypherpunksv3 onion keep working without the HiddenServiceVersion 3 lineI started by defining a v3 hidden service in torrc and running tor, thus creating a v3 private key.
Then I commented out the HiddenServiceVersion 3 line and sent the tor process a sighup using kill -HUP processid.
The v2 private key a...I started by defining a v3 hidden service in torrc and running tor, thus creating a v3 private key.
Then I commented out the HiddenServiceVersion 3 line and sent the tor process a sighup using kill -HUP processid.
The v2 private key and hostname were generated, but the v3 address kept working the v2 address did not work.
I then sent sighup again, and this time both the v2 and v3 addresses worked.Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/25365Use uint64_t for Tor's hash tables, even if int is 32 bits2020-06-27T13:54:02ZteorUse uint64_t for Tor's hash tables, even if int is 32 bits64-bit macOS and BSD are LP64, which means that their ints are 32 bits. This makes Tor's hash tables 32 bits, reducing their security.
This issue also occurs on 32-bit systems, where using uint64_t might be slower. I don't know if speed...64-bit macOS and BSD are LP64, which means that their ints are 32 bits. This makes Tor's hash tables 32 bits, reducing their security.
This issue also occurs on 32-bit systems, where using uint64_t might be slower. I don't know if speed matters, as siphash is 64 bit anyway.Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/25081use get_uptime() consistently2020-06-27T13:54:16ZRoger Dingledineuse get_uptime() consistentlyWe have this nice function get_uptime() that shields the global variable `stats_n_seconds_working` from the rest of the Tor files.
But then we undermine that by saying
```
extern long stats_n_seconds_working;
```
in main.h and we just s...We have this nice function get_uptime() that shields the global variable `stats_n_seconds_working` from the rest of the Tor files.
But then we undermine that by saying
```
extern long stats_n_seconds_working;
```
in main.h and we just start using that variable directly all over.
There are a few lonely users of get_uptime().
We should move everybody over to using get_uptime, and get rid of the scary extern.
(Also check out how we're *writing* to the extern variable, in hibernate.c. There's no way that could confuse anybody down the road!)Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26064Use a mainloop timer to wake up from hibernation.2020-06-27T13:53:28ZNick MathewsonUse a mainloop timer to wake up from hibernation.In lieu of legacy/trac#25950, we can do a much simpler version: when we go dormant, schedule a timer to wake up at a later time.In lieu of legacy/trac#25950, we can do a much simpler version: when we go dormant, schedule a timer to wake up at a later time.Tor: 0.3.4.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/25995Use a deterministic PRNG in test_circuit_timeout() for predictable coverage.2020-06-27T13:53:32ZNick MathewsonUse a deterministic PRNG in test_circuit_timeout() for predictable coverage.The test coverage from test_circuit_timeout() is nondeterministic, because the function deliberately creates random samples and passes them to the circuitstats module.
I propose that for this function, we replace the RNG with a mocked r...The test coverage from test_circuit_timeout() is nondeterministic, because the function deliberately creates random samples and passes them to the circuitstats module.
I propose that for this function, we replace the RNG with a mocked replacement.Tor: 0.3.4.x-finalNick MathewsonNick Mathewsonhttps://gitlab.torproject.org/tpo/core/tor/-/issues/22653upgrading Tor-0.2.9.10 to Tor-0.3.0.8 or Tor-0.3.1.3_alpha fails to build cir...2020-06-27T13:56:24ZTracupgrading Tor-0.2.9.10 to Tor-0.3.0.8 or Tor-0.3.1.3_alpha fails to build circuitsMy GNU/Linux Gentoo compiles Tor manually instead of Tor-browser. I use pluggable transports **obfs4** and **bridge**.
Tor-0.2.9.10 worked like a charm with current torrc. When upgrading to Tor-0.3.0.8 with the same torrc configuration,...My GNU/Linux Gentoo compiles Tor manually instead of Tor-browser. I use pluggable transports **obfs4** and **bridge**.
Tor-0.2.9.10 worked like a charm with current torrc. When upgrading to Tor-0.3.0.8 with the same torrc configuration, it no longer builds circuits.
My /etc/tor/torrc configuration:
```
User tor
PIDFile /var/run/tor/tor.pid
AvoidDiskWrites 1
DirReqStatistics 0
DataDirectory /var/lib/tor/data
Log notice syslog
Log notice file /var/lib/tor/notice.log
StrictNodes 1
GeoIPExcludeUnknown 1
ExcludeNodes {vn},{pk}
NodeFamily {vn},{pk}
EnforceDistinctSubnets 1
UseEntryGuards 1
PathsNeededToBuildCircuits 0.95
UseBridges 1
UpdateBridgesFromAuthority 1
ClientTransportPlugin obfs4 exec /opt/bin/obfs4proxy --enableLogging --logLevel ERROR
Bridge obfs4 12.34.56.78 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cert=BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB iat-mode=0
...
Bridge obfs4 12.34.56.78 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA cert=BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB iat-mode=0
DNSPort auto
VirtualAddrNetworkIPv4 10.192.0.0/10
AutomapHostsOnResolve 1
AutomapHostsSuffixes .exit,.onion
TransPort auto
```
Tor 0.2.9.10 log:
```
Jun 18 19:27:42.000 [notice] Tor 0.2.9.10 (git-1f6c8eda0073f464) opening new log file.
Jun 18 19:27:42.352 [warn] You have asked to exclude certain relays from all positions in your circuits. Expect hidden services and other Tor features to be broken in un\
predictable ways.
Jun 18 19:27:42.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
Jun 18 19:27:42.000 [notice] Parsing GEOIP IPv6 file /usr/share/tor/geoip6.
Jun 18 19:27:42.000 [notice] Bootstrapped 0%: Starting
Jun 18 19:27:43.000 [notice] new bridge descriptor 'acanthdisorienta' (cached): $AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA~acanthdisorienta at 12.34.56.78
Jun 18 19:27:43.000 [notice] new bridge descriptor 'acanthdisorienta' (cached): $AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA~acanthdisorienta at 12.34.56.78
Jun 18 19:27:44.000 [notice] new bridge descriptor 'acanthdisorienta' (cached): $AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA~acanthdisorienta at 12.34.56.78
Jun 18 19:27:44.000 [notice] Delaying directory fetches: Pluggable transport proxies still configuring
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] While fetching directory info, no running dirservers known. Will try again later. (purpose 6)
Jun 18 19:27:46.000 [notice] Bootstrapped 5%: Connecting to directory server
Jun 18 19:27:46.000 [notice] Bootstrapped 10%: Finishing handshake with directory server
Jun 18 19:27:48.000 [notice] Bootstrapped 15%: Establishing an encrypted directory connection
Jun 18 19:27:48.000 [notice] Bootstrapped 20%: Asking for networkstatus consensus
Jun 18 19:27:48.000 [notice] Bootstrapped 25%: Loading networkstatus consensus
Jun 18 19:27:52.000 [notice] Bootstrapped 80%: Connecting to the Tor network
Jun 18 19:27:53.000 [notice] Bootstrapped 90%: Establishing a Tor circuit
Jun 18 19:27:54.000 [notice] Tor has successfully opened a circuit. Looks like client functionality is working.
Jun 18 19:27:54.000 [notice] Bootstrapped 100%: Done
```
Tor-0.3.0.8 log
```
Jun 18 17:07:10.000 [notice] Tor 0.3.0.8 (git-802d30d9b71a6d54) opening new log file.
Jun 18 17:07:10.861 [warn] You have asked to exclude certain relays from all positions in your circuits. Expect hidden services and other Tor features to be broken in un\
predictable ways.
Jun 18 17:07:10.000 [notice] Parsing GEOIP IPv4 file /usr/share/tor/geoip.
Jun 18 17:07:11.000 [notice] Parsing GEOIP IPv6 file /usr/share/tor/geoip6.
Jun 18 17:07:11.000 [notice] Bootstrapped 0%: Starting
Jun 18 17:07:12.000 [notice] Starting with guard context "bridges"
Jun 18 17:07:12.000 [notice] new bridge descriptor 'acanthdisorienta' (cached): $37AB6046C23F2385102D0D380AD827070E26E528~acanthdisorienta at 12.34.56.78
Jun 18 17:07:12.000 [notice] Delaying directory fetches: Pluggable transport proxies still configuring
Jun 18 17:09:14.000 [notice] Bootstrapped 5%: Connecting to directory server
Jun 18 17:09:14.000 [notice] Bootstrapped 10%: Finishing handshake with directory server
Jun 18 17:09:15.000 [notice] Bootstrapped 15%: Establishing an encrypted directory connection
Jun 18 17:09:16.000 [notice] Bootstrapped 20%: Asking for networkstatus consensus
Jun 18 17:09:16.000 [warn] Proxy Client: unable to connect to 12.34.56.78:443 ("general SOCKS server failure")
Jun 18 17:11:24.000 [warn] Proxy Client: unable to connect to 12.34.56.78:34095 ("general SOCKS server failure")
Jun 18 17:11:24.000 [warn] Proxy Client: unable to connect to 12.34.56.78:60491 ("general SOCKS server failure")
Jun 18 17:11:24.000 [warn] Proxy Client: unable to connect to 12.34.56.78:50211 ("general SOCKS server failure")
...
Jun 18 17:31:24.000 [warn] Proxy Client: unable to connect to 12.34.56.78:34095 ("general SOCKS server failure")
Jun 18 17:53:40.000 [notice] new bridge descriptor 'acanthdisorienta' (fresh): $37AB6046C23F2385102D0D380AD827070E26E528~acanthdisorienta at 12.34.56.78
Jun 18 17:53:40.000 [notice] I learned some more directory information, but not enough to build a circuit: We're missing descriptors for some of our primary entry guards
Jun 18 17:09:16.000 [warn] Proxy Client: unable to connect to 12.34.56.78:443 ("general SOCKS server failure")
Jun 18 17:11:24.000 [warn] Proxy Client: unable to connect to 12.34.56.78:34095 ("general SOCKS server failure")
Jun 18 17:11:24.000 [warn] Proxy Client: unable to connect to 12.34.56.78:60491 ("general SOCKS server failure")
Jun 18 17:11:24.000 [warn] Proxy Client: unable to connect to 12.34.56.78:50211 ("general SOCKS server failure")
```
**Trac**:
**Username**: t0rTor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/26388Update tor copyright headers to year 20182020-06-27T13:53:11Zrl1987Update tor copyright headers to year 2018Now it says:
```
* Copyright (c) 2007-2017, The Tor Project, Inc. */
```
Should be updated to 2018. We have updateCopyright.pl for this.Now it says:
```
* Copyright (c) 2007-2017, The Tor Project, Inc. */
```
Should be updated to 2018. We have updateCopyright.pl for this.Tor: 0.3.4.x-finalrl1987rl1987https://gitlab.torproject.org/tpo/core/tor/-/issues/25368Update the Tor Rust coding standards for new types2021-07-22T16:20:50ZteorUpdate the Tor Rust coding standards for new typesI added some new types to the rust coding standards.
But I think I will need isis' help to explain Stringlist.I added some new types to the rust coding standards.
But I think I will need isis' help to explain Stringlist.Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/25296update PerConnBWRate/Burst manpage entries to not mention consensus2021-07-22T16:21:38Zcypherpunksupdate PerConnBWRate/Burst manpage entries to not mention consensuscontext:
https://lists.torproject.org/pipermail/tor-relays/2018-February/014585.html
The manpage says that relays will use the value in consensus but the consensus does not longer include these values.
This patch removes "You should ne...context:
https://lists.torproject.org/pipermail/tor-relays/2018-February/014585.html
The manpage says that relays will use the value in consensus but the consensus does not longer include these values.
This patch removes "You should never need to change this value, since a network-wide value is published in the consensus and your relay will use that value."
and is the minimal change, but it would be better to add more information that says if tor has some built-in mechanism to avoid that a single client uses all bw.
Also: How does tor tell non-relays from relays apart?
```
@@ -243,13 +243,11 @@
[[PerConnBWRate]] **PerConnBWRate** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**|**TBytes**|**KBits**|**MBits**|**GBits**|**TBits**::
If set, do separate rate limiting for each connection from a non-relay.
- You should never need to change this value, since a network-wide value is
- published in the consensus and your relay will use that value. (Default: 0)
+ (Default: 0)
[[PerConnBWBurst]] **PerConnBWBurst** __N__ **bytes**|**KBytes**|**MBytes**|**GBytes**|**TBytes**|**KBits**|**MBits**|**GBits**|**TBits**::
If set, do separate rate limiting for each connection from a non-relay.
- You should never need to change this value, since a network-wide value is
- published in the consensus and your relay will use that value. (Default: 0)
+ (Default: 0)
[[ClientTransportPlugin]] **ClientTransportPlugin** __transport__ socks4|socks5 __IP__:__PORT__::
**ClientTransportPlugin** __transport__ exec __path-to-binary__ [options]::
```Tor: 0.3.4.x-finalhttps://gitlab.torproject.org/tpo/core/tor/-/issues/25664Update libc version requirement in GettingStartedRust.md and configure.ac2021-07-22T16:20:51ZGeorg KoppenUpdate libc version requirement in GettingStartedRust.md and configure.acWhen merging the patches for legacy/trac#25310 the libc version requirement in `GettingStartedRust.md` and `configure.ac` did not get updated.When merging the patches for legacy/trac#25310 the libc version requirement in `GettingStartedRust.md` and `configure.ac` did not get updated.Tor: 0.3.4.x-final