Commit graph

476 commits

Author SHA1 Message Date
Damon Harris
c4fb3bfed5 Add support for console control signals in Windows 2020-05-20 23:28:39 +05:30
Nick Mathewson
b7a165228f Merge remote-tracking branch 'tor-github/pr/1880/head' 2020-05-07 08:19:11 -04:00
Nick Mathewson
4a2347d290 Merge branch 'maint-0.4.3'
Amazingly, this time we had no merge conflicts with "falls through" comments.
2020-05-06 16:55:41 -04:00
Nick Mathewson
c116728209 Use __attribute__((fallthrough)) rather than magic GCC comments.
GCC added an implicit-fallthrough warning a while back, where it
would complain if you had a nontrivial "case:" block that didn't end
with break, return, or something like that.  Clang recently added
the same thing.

GCC, however, would let you annotate a fall-through as intended by
any of various magic "/* fall through */" comments.  Clang, however,
only seems to like "__attribute__((fallthrough))".  Fortunately, GCC
accepts that too.

A previous commit in this branch defined a FALLTHROUGH macro to do
the right thing if GNUC is defined; here we replace all of our "fall
through" comments with uses of that macro.

This is an automated commit, made with the following perl one-liner:

  #!/usr/bin/perl -i -p
  s#/\* *falls? ?thr.*?\*/#FALLTHROUGH;#i;

(In order to avoid conflicts, I'm applying this script separately to
each maint branch. This is the 0.4.3 version.)
2020-05-06 16:55:25 -04:00
David Goulet
a25f167072 config: New file resolve_addr.{c|h}
Move a series of function from config.c into that new file which is related to
address resolving.

Part of #33789

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-05-05 14:24:04 -04:00
Nick Mathewson
80031db32a Merge remote-tracking branch 'tor-github/pr/1801/head' 2020-04-09 11:50:20 -04:00
David Goulet
cd2121a126
client: Revert setting PreferIPv6 on by default
This change broke torsocks that by default is expecting an IPv4 for hostname
resolution because it can't ask tor for a specific IP version with the SOCKS5
extension.

PreferIPv6 made it that sometimes the IPv6 could be returned to torsocks that
was expecting an IPv4.

Torsocks is probably a very unique case because the runtime flow is that it
hijacks DNS resolution (ex: getaddrinfo()), gets an IP and then sends it back
for the connect() to happen.

The libc has DNS resolution functions that allows the caller to request a
specific INET family but torsocks can't tell tor to resolve the hostname only
to an IPv4 or IPv6 and thus by default fallsback to IPv4.

Reverting this change into 0.4.3.x series but we'll keep it in the 0.4.4.x
series in the hope that we add this SOCKS5 extension to tor for DNS resolution
and then change torsocks to use that.

Fixes #33804

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-04-09 11:05:32 +10:00
teor
f863954f1e Move LOG_PROTOCOL_WARN to app/config.h
LOG_PROTOCOL_WARN was in core/or.h, but the function it depends on is in
app/config.h. Put them in the same header, to reduce dependencies.

Part of 33633.
2020-04-01 09:17:18 +10:00
Nick Mathewson
ac72ecd581 Add --dbg-dump-subsystem-list command to list the subsystems.
I'm prefixing this with --dbg-* because it is not meant to be used
externally.
2020-03-26 12:17:28 -04:00
Nick Mathewson
8f49943459 Implement a function to list the subsystems to stdout. 2020-03-26 11:20:20 -04:00
Nick Mathewson
a0efba9bd0 Merge remote-tracking branch 'tor-github/pr/1797/head' 2020-03-23 09:05:45 -04:00
teor
1d22411cea
Add some comments about future relay IPv6 work
Comments about 33681.
2020-03-21 04:07:17 +10:00
teor
4b914dea02
Merge branch 'bug32588_043' into bug32588_master 2020-03-21 04:02:08 +10:00
teor
52f61ec83e
Merge branch 'bug32588_042' into bug32588_043
Merge static function declaration deletions from bug32588_042 and
maint-0.4.3 in app/config/config.c.
2020-03-21 04:01:00 +10:00
teor
5e2f31f177
Merge branch 'bug32588_041' into bug32588_042 2020-03-21 03:52:32 +10:00
teor
2962c32b7a
Merge branch 'bug32588_035' into bug32588_041
Merge tests from maint-0.4.1 with new tests from bug32588_035
in test_router.c.
2020-03-21 03:50:36 +10:00
Nick Mathewson
6ffe073db7
Add tests for get_first_advertised_{addr,port}_by_type_af() 2020-03-21 03:43:52 +10:00
MrSquanchee
1a9cbc5bb4
Get all default flags from port_cfg_new()
Now port_cfg_new() returns all default flags and
port_parse_config() acts on defaults returned by port_cfg_new()
that is uses the default port_cfg_t object returned by port_cfg_new()
and modifies them later according to the port specifications in
configuration files
Might close tor#32994.
2020-03-14 20:18:42 +10:00
Nick Mathewson
b504942331 Merge remote-tracking branch 'tor-github/pr/1718/head' into maint-0.4.2 2020-03-13 16:42:47 -04:00
teor
9cf7839df7
config: Improve some comments
Document the namelen argument to port_cfg_new().

Fix a typo in a comment in port_cfg_line_extract_addrport().

Comment-only changes.
2020-03-13 18:53:48 +10:00
David Goulet
6684c6e17f Merge branch 'tor-github/pr/1751' 2020-03-09 09:33:05 -04:00
Neel Chauhan
7d673e70b0 Remove the ClientAutoIPv6ORPort option 2020-03-09 09:33:00 -04:00
Nick Mathewson
686494f0f7 Merge branch 'clang_format_prep_3' 2020-03-05 08:23:32 -05:00
Nick Mathewson
d4d5d9d1d1 Merge branch 'ticket33316_squashed' 2020-02-24 07:49:45 -05:00
Nick Mathewson
e067cb426a Move process subsystem after evloop.
Process uses evloop, and so should be initialized after it.
2020-02-24 07:49:39 -05:00
Nick Mathewson
63b7dabdea Merge ocirc and orconn events into or subsystem.
Pubsub events are not supposed to have their own subsystems; they're
supposed to be part of a parent subsystem.
2020-02-24 07:49:39 -05:00
Nick Mathewson
90524de0b2 Move winprocess_sys into a new low-level hardening module
This code was in our process module, but it doesn't belong there:
process is for launching and monitoring subprocesses, not for
hardening the current process.

This change lets us have our subsystem init order more closely match
our dependency order.
2020-02-24 07:49:39 -05:00
Nick Mathewson
caa392a73a Merge remote-tracking branch 'tor-github/pr/1685/head' 2020-02-24 07:45:20 -05:00
Nick Mathewson
eb07166eb8 Make sure callers can handle NULL ext-or auth cookie filename 2020-02-18 12:55:57 -05:00
Nick Mathewson
691d271b2e Re-order thread initialization to follow logging, and remove a comment.
lib/log no longer uses lib/thread; lib/log only uses lib/lock, which
is at a lower level.
2020-02-13 12:55:05 -05:00
Nick Mathewson
67d59d7d1f Re-order most subsystems to correspond to dependency order. 2020-02-13 12:53:15 -05:00
teor
ff52205362
Merge branch 'maint-0.4.1' into maint-0.4.2 2020-02-12 12:22:04 +10:00
teor
5298113da9
Merge branch 'maint-0.3.5' into maint-0.4.1 2020-02-12 12:21:57 +10:00
Alexander Færøy
b9c7c61ea5
Lowercase the BridgeDistribution value from torrc in descriptors.
This patch ensures that we always lowercase the BridgeDistribution from
torrc in descriptors before submitting it.

See: https://bugs.torproject.org/32753
2020-02-12 12:21:41 +10:00
David Goulet
735aa208b1 dirauth: Add option AuthDirRejectRequestsUnderLoad
This controls the previous feature added that makes dirauth send back a 503
error code on non relay connections if under bandwidth pressure.

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-02-11 09:57:05 -05:00
Nick Mathewson
99a5aecbc7 Wrap columnar tables in "clang-format off/on"
These tables have aligned comments, so we don't want clang-format to
mess with them.
2020-02-06 14:54:04 -05:00
Nick Mathewson
06a6130666 Use parentheses to avoid mis-indentations of stringified macro args
clang-format sometimes thinks that "#name" should be written as
"#     name" if it appears at the start of a line.  Using () appears
to suppress this, while confusing Coccinelle.
2020-02-06 14:54:04 -05:00
teor
7b6be02a92
Merge branch 'maint-0.4.1' into maint-0.4.2 2020-01-30 07:55:12 +10:00
David Goulet
ef28afa255 hs-v3: Add the Onion Balance config file option
At this commit, the service reads the config file and parse it to finally set
the service config object with the options.

Part of #32709

Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-01-21 10:31:29 -05:00
teor
bf2a399fc0
config: Make clients tell dual-stack exits they prefer IPv6
Make Tor clients tell dual-stack exits that they prefer IPv6
connections.

This change is equivalent to setting the PreferIPv6 flag on
SOCKSPorts (and most other listener ports). Tor Browser has
been setting this flag for some time, and we want to remove a
client distinguisher at exits.

Also update the man page, putting all the IP flags in their
non-default forms.

Closes ticket 32637.
2020-01-20 16:36:58 +10:00
Nick Mathewson
c8b6392b4e Initialize publish/subscribe code when running as an NT service.
Fixes bug 32778; bugfix on 0.4.1.1-alpha.
2020-01-17 08:41:52 -05:00
Nick Mathewson
d7a22160f5 Revert "Restore feature where nt-services detect non-"run_tor" modes."
This reverts commit 5c240db0bf.
2020-01-17 08:39:49 -05:00
Nick Mathewson
7f03ba06d8 Merge branch 'ticket32806' 2020-01-17 08:37:33 -05:00
Nick Mathewson
abd9ae48ac Merge branch 'ticket32487_squashed_and_merged' 2020-01-17 07:50:50 -05:00
Nick Mathewson
17c63ff9f6 Merge remote-tracking branch 'tor-github/pr/1663' 2020-01-16 10:24:39 -05:00
Nick Mathewson
3c89622e39 Merge branch 'ticket32487_squashed' into ticket32487_squashed_and_merged
Resolved conflicts in src/core/include.am
2020-01-16 07:57:37 -05:00
Nick Mathewson
efb301c86c Document why dircache is not included in --list-modules 2020-01-16 07:48:17 -05:00
Nick Mathewson
6ba4b5e5da Rename dirclient_modes.h identifiers to start with dirclient_
This is an automated commit, generated by this command:

./scripts/maint/rename_c_identifier.py \
        directory_must_use_begindir dirclient_must_use_begindir \
        directory_fetches_from_authorities dirclient_fetches_from_authorities \
        directory_fetches_dir_info_early dirclient_fetches_dir_info_early \
        directory_fetches_dir_info_later dirclient_fetches_dir_info_later \
        directory_too_idle_to_fetch_descriptors dirclient_too_idle_to_fetch_descriptors
2020-01-16 07:48:17 -05:00
Nick Mathewson
773bcf5629 Move dirclient-related functions out of dirserv, and reenable them
I had incorrectly identified these functions as dircache-only, when
in fact they apply to everyone who acts a directory client.
2020-01-16 07:48:17 -05:00
Nick Mathewson
5e70c27e85 Merge remote-tracking branch 'tor-github/pr/1657' 2020-01-15 13:10:14 -05:00