- 21 Dec, 2020 5 commits
-
-
David Goulet authored
If we get an address suggestion from a directory authority and we have no address configured or discovered, log it at notice level so the operator can learn what address will be used by Tor. Fixes #40201 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Nick Mathewson authored
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
The previous parser only considered stats files _starting_ with the timestamp tag, not stats files having the timestamp tag in a later position. While this applies to all current stats files, a future stats file might look differently. Better to fix the function now than be surprised in another 9 years from now. This commit also adds a test case for such future stats, and it fixes stats file paths in newly added unit tests.
-
It turns out that 9 years ago, we stopped appending data into stats file and rather overwrite everytime we have new stats (see commit a6a127c8 ) The load_stats_file() function was still thinking that we could have the same line many times in the file which turns out to be false since 9 years ago. However, that did not cause problem until IPv6 connection stats came along which introduced a new line in conn-stats: "ipv6-conn-bi-direct ...". Before, that file contained a single line starting with the tag "conn-bi-direct". That very tag appears also in the IPv6 tag (see above) so the load_stats_file() function would consider that the IPv6 line as the last tag to be appeneded to the file and fail to report the line above (for IPv4). It would actually truncate the IPv6 line and report it (removing the "ipv6-" part). In other words, "conn-bi-direct" was not reported and instead "ipv6-conn-bi-direct" was used without the "ipv6-" part. This commit refactors the entire function so that now it looks for a "timestamp tag" to validate and then if everything is fine, returns the entire content of the file. The refactor simplifies the function, adds logging in case of failures and modernize it in terms of coding standard. Unit tests are also added that makes sure the loaded content matches the entire file if timestamp validation passes. Fixes #40226 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- 17 Dec, 2020 2 commits
-
-
David Goulet authored
-
George Kadianakis authored
Bug reported and diagnosed in: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=975977 Fixes bug #40210.
-
- 16 Dec, 2020 4 commits
-
-
Alexander Færøy authored
-
When making sure we have a Bridge line with a ClientTransportPlugin, we now check in the managed proxy list and so we can catch any missing ClientTransportPlugin for a Bridge line. Fixes #40106 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Alexander Færøy authored
-
Alexander Færøy authored
-
- 15 Dec, 2020 2 commits
-
-
David Goulet authored
-
George Kadianakis authored
-
- 14 Dec, 2020 1 commit
-
-
Nick Mathewson authored
Previously, our code would send back an error if the socks5 request parser said anything but DONE. But there are other non-error cases, like TRUNCATED: we shouldn't send back errors for them. This patch lowers the responsibility for setting the error message into the parsing code, since the actual type of the error message will depend on what problem was encountered. Fixes bug 40190; bugfix on 0.3.5.1-alpha.
-
- 11 Dec, 2020 1 commit
-
-
David Goulet authored
From c618c4f2 , we changed the static libevent.a path to be able to use the git repository or tarball directly but that broke the "make install" setup that Tor Browser is using with Android. In other words, the git repository and tarball put the "libevent.a" in ".libs/" where "make install" puts it in "lib/". Using the --with-libevent-dir=..., which is mandatory for static libevent, autoconf will take the path and use it for the includes (-I) and library (-L) for which if it finds a "include/" and a "lib/" in the root, it will use those. However, with the git repo or tarball, the "lib/" doesn't exists thus autoconf sets the library search path to be at the root and thus fails to find the libevent.a in ".libs/". This is a whole lot more work to make both cases work in our configure.ac thus I'm reverting the change here to the Tor Browser case works again and the work around for others is to either symlink the libevent.a at the root or use a temporary make install directory. One long term fix here would likely be to ask libevent to symblink the .a into the root along the .la files and likely do the same for .so. Or, use the "lib/" structure to contain the .a + .so files. Would be better than doing ninji-tsu in our configure.ac Fixes #40225 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- 09 Dec, 2020 1 commit
-
-
Nick Mathewson authored
Document !badexit, and improve the documentation for !invalid. Closes #40188.
-
- 08 Dec, 2020 4 commits
-
-
Adds a more user-friendly error message when the configuration is reloaded and a new %include is added that makes its unglobbing access files/folders not allowed by the seccomp sandbox.
-
Nick Mathewson authored
-
David Goulet authored
Fixes #40205 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
The "-static" compile flag was set globally which means that all autoconf test were attempting to be built statically and lead to failures of detecting OpenSSL libraries and others. This commit adds this flag only to the "tor" binary build. There is also a fix on where to find libevent.a since it is using libtool, it is in .libs/. At this commit, there are still warnings being emitted that informs the user that the built binary must still be linked dynamically with glibc. Fixes #40111 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
- 23 Nov, 2020 1 commit
-
-
Nick Mathewson authored
-
- 21 Nov, 2020 1 commit
-
-
Nick Mathewson authored
-
- 19 Nov, 2020 3 commits
-
-
Alexander Færøy authored
-
Alexander Færøy authored
-
Alexander Færøy authored
-
- 18 Nov, 2020 2 commits
-
-
David Goulet authored
Fixes #25528 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
-
- 17 Nov, 2020 13 commits
-
-
David Goulet authored
When sending the stream level SENDME, it is possible the cirucit was marked for close or any other failures that can occur. These events can occur naturally. Fixes #40142 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
David Goulet authored
-
David Goulet authored
The function in charge of removing duplicate ORPorts from our configured ports was skipping all non ORPorts port but only for the outer loop thus resulting in comparing an ORPort with a non-ORPort which lead to problems. For example, tor configured with the following would fail: ORPort auto DirPort auto Both end up being the same configuration except that one is a OR listener and one is a Dir listener. Thus because of the missing check in the inner loop, they looked exactly the same and thus one is removed. Fixes #40195 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Nick Mathewson authored
-
Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
First, this commit moves the launch_dummy_circuit_as_needed() function into relay_find_addr.c and renames it to relay_addr_learn_from_dirauth(). This is an attempt to centralize anything relate with address discovery in the right module. Second, when building a descriptor and we fail to discover our address, immediately launch a dummy circuit to an authority in an attempt to learn our descriptor. It is still only done every 20 minutes even though the descriptor build is done every minute. We ought to avoid load on the authority and if we can't learn in the first place our address from them, chances are more things are wrong. Related to #40071 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Regularly, tor looks if its IP has changed. It does the entire auto discovery process again. However, it is possible that it does not find anything. Instead of thinking the IP changed to an unknown address, look at our cache and see if that value has changed. The reason for this is because if tor gets its address as a suggestion from a directory authority, it is because the auto discovery failed and thus that address should be consider for the IP change check. Related to #40071 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Tor now can learn its address from a NETINFO cell coming from an authority. Thus, instead from launching a dummy descriptor fetch to learn the address from the directory response (unauthenticated), we simply now launch a one-hop testing circuit. Related to #40071 Signed-off-by:
David Goulet <dgoulet@torproject.org>
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-
Nick Mathewson authored
-