aboutsummaryrefslogtreecommitdiff
path: root/src/app/config/config.c
AgeCommit message (Collapse)Author
2021-10-21Merge branch 'maint-0.4.5' into maint-0.4.6Alexander Færøy
2021-10-21Merge remote-tracking branch 'tor-gitlab/mr/338' into maint-0.4.5Alexander Færøy
2021-05-17Merge branch 'maint-0.4.5' into maint-0.4.6Nick Mathewson
2021-05-17Make SAVECONF keep only one backup and add sandbox rules for it. #40317Daniel Pinto
When seccomp sandbox is active, SAVECONF failed because it was not able to save the backup files for torrc. This commit simplifies the implementation of SAVECONF and sandbox by making it keep only one backup of the configuration file.
2021-05-11Make MinTimeToReportBandwidth a testing-only option (and rename it)Nick Mathewson
2021-03-28Add long format name --torrc-file for command line option -f. #40324Daniel Pinto
2021-03-17Merge branch 'mr/334'George Kadianakis
2021-03-17Implement backbone of overload statistics.George Kadianakis
- Implement overload statistics structure. - Implement function that keeps track of overload statistics. - Implement function that writes overload statistics to descriptor. - Unittest for the whole logic.
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-17Add a MinTimeToReportBandwidth option; make it 0 for testing networks.Nick Mathewson
This option changes the time for which a bandwidth measurement period must have been in progress before we include it when reporting our observed bandwidth in our descriptors. Without this option, we only consider a time period towards our maximum if it has been running for a full day. Obviously, that's unacceptable for testing networks, where we'd like to get results as soon as possible. For non-testing networks, I've put a (somewhat arbitrary) 2-hour minimum on the option, since there are traffic analysis concerns with immediate reporting here. Closes #40337.
2021-03-12Run "make autostyle" in advance of new series.Nick Mathewson
2021-03-12Update copyrights to 2021, using "make update-copyright"Nick Mathewson
2021-02-19man: Cleanup of v2 options and configDavid Goulet
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-12Merge branch 'maint-0.4.5'David Goulet
2021-02-11config: Set flag for implicit port addressDavid Goulet
Fun bug where we thought we were using the default "false" value when an implicit address was detected but if we had an explicit address before, the flag was set to true and then we would only use that value. And thus, for some configurations, implicit addresses would be flagged as explicit and then configuring ports goes bad. Related to #40289 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-02-08Merge remote-tracking branch 'tor-gitlab/mr/278'Nick Mathewson
2021-02-08Merge branch 'bug40249_squashed'Nick Mathewson
2021-02-08Add stream ID to ADDRMAP control eventNeel Chauhan
2021-01-27dos: Move config options within the subsystemDavid Goulet
Closes #40261 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-27Merge remote-tracking branch 'tor-gitlab/mr/248'George Kadianakis
2021-01-21Merge branch 'maint-0.4.5'Nick Mathewson
2021-01-20config: Remove Bridge <-> ClientTransportPlugin validationDavid Goulet
This validation was only done if DisableNetwork was off because we would use the global list of transports/bridges and DisableNetwork would not populate it. This was a problem for any user using DisableNetwork which includes Tor Browser and thus leading to the Bug() warning. Without a more in depth refactoring, we can't do this validation without the global list. The previous commit makes it that any connection to a bridge without a transport won't happen thus we keep the security feature of not connecting to a bridge without its corresponding transport. Related to #40106 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-19Merge branch 'maint-0.4.5'Nick Mathewson
2021-01-19config: Prioritize port with explicit addressDavid Goulet
When selecting the first advertised port, we always prefer the one with an explicit address. Closes #40246 Signed-off-by: David Goulet <dgoulet@torproject.org>
2021-01-06Do not require a valid torrc forNeel Chauhan
2020-12-16Merge branch 'maint-0.4.5'Alexander Færøy
2020-12-16config: Catch missing Bridge for ClientTransportPluginDavid Goulet
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>
2020-12-11Merge remote-tracking branch 'tor-gitlab/mr/232'George Kadianakis
2020-12-08Merge branch 'mr/233'George Kadianakis
2020-12-08Command-line arguments: be better at detecting absent optional args.Nick Mathewson
Previously, "--list-fingerprint --quiet" was an error. Now, the handler for optional arguments to "--list-fingerprint" can tell that "--quiet" is a flag, not an argument. This only affects flags that take an _optional_ argument, so you can still put your torrc file in a location starting with "-". Closes #40223.
2020-12-03Fix formatting in comment in parse_port_config()Neel Chauhan
2020-11-21Fix ControlSocketsGroupWritable typoNeel Chauhan
2020-11-19Merge branch 'maint-0.4.5'Alexander Færøy
2020-11-19Merge remote-tracking branch 'tor-gitlab/mr/214' into masterNick Mathewson
2020-11-18config: Bridge line with a transport must have a ClientTransportPluginDavid Goulet
Fixes #25528 Signed-off-by: David Goulet <dgoulet@torproject.org>
2020-11-17Allow listing ed25519 fingerprints on the command lineNeel Chauhan
2020-11-17Add the compiler name, version and libs used to compileGuinness
This changes the behaviour of `tor --version` in such a way. ```console src/app/tor --version Tor version 0.4.5.1-alpha-dev (git-46ccde66a97d7985). Tor is running on Linux with Libevent 2.1.12-stable, OpenSSL 1.1.1h, Zlib 1.2.11, Liblzma 5.2.4, Libzstd 1.4.5 and Glibc 2.31 as libc. Tor compiled with GCC version 10.2.0 ``` Fixes #32102
2020-11-13port: Don't ignore ports of a different familyDavid Goulet
Commit c3a0f757964de0e8a24911d72abff5df20bb323c added this feature for ORPort that we ignore any port that is not the family of our default address when parsing the port. So if port_parse_config() was called with an IPv4 default address, all IPv6 address would be ignored. That makes sense for ORPort since we call twice port_parse_config() for 0.0.0.0 and [::] but for the rest of the ports, it is not good since a perfectly valid configuration can be: SocksPort 9050 SocksPort [::1]:9050 Any non-ORPort only binds by default to an IPv4 except the ORPort that binds to both IPv4 and IPv6 by default. The fix here is to always parse all ports within port_parse_config() and then, specifically for ORPort, remove the duplicates or superseding ones. The warning is only emitted when a port supersedes another. A unit tests is added to make sure SocksPort of different family always exists together. Fixes #40183 Signed-off-by: David Goulet <dgoulet@torproject.org>
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-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-14Merge branch 'tor-gitlab/mr/170'David Goulet
2020-10-13Make OptimisticData always-on.Nick Mathewson
We've been using it for years, and it seems to work just fine. This patch removes the option and its network parameter. Part of #40139
2020-10-13Merge remote-tracking branch 'tor-gitlab/mr/161'Alexander Færøy
2020-10-06Move parse logic for outbound addresses to before we handle PT's.Alexander Færøy
This patch moves the logic for handling outbound addresses in torrc to before we handle pluggable transports. Since we need access to the values in OutboundBindAddress and friends for #5304 we have to parse these values before we spawn any PT's. This commit is code movement only. See: https://bugs.torproject.org/5304
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-10-06Add `OutboundBindAddressPT` to torrc.Alexander Færøy
This patch adds a new option to torrc: `OutboundBindAddressPT`. This option works in the same way as `OutboundBindAddressOR` and `OutboundBindAddressExit` in that it allows the user to specify which outbound IP address the user wants the PT to make its connections from. There is one difference though in that OutboundBindAddressPT will only be a suggestion for the PT to use since Tor cannot enforce whether or not the PT actually uses this option for anything. See: https://bugs.torproject.org/5304
2020-09-23Remove support for old android "logcat" APINick Mathewson
This is apparently obsolete; syslog is modern instead. If users have an android log configured, given them a syslog if we can. Closes #32181.