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
Nick Mathewson
77246dc0d8
Tell static analyzer that having ntservice functions not exist is ok
...
When we made these functions exist unconditionally (as macros on
non-windows platforms), we started to get a dead-code warning on
Coverity. We now use a macro to tell coverity not to worry about
this particular dead-code instance.
2020-01-15 10:30:03 -05:00
Nick Mathewson
c2dc94d8eb
Merge branch 'ticket32883'
2020-01-14 12:42:41 -05:00
Neel Chauhan
8d288eb3a7
Deprecate the ClientAutoIPv6ORPort option
2020-01-13 14:55:16 -08:00
Nick Mathewson
73ac1add3f
Split core/include.am into per-subdirectory include.am files
...
Closes ticket 32137.
2020-01-13 09:34:17 -05:00
Nick Mathewson
e45810113b
Merge branch 'pre_formatter_cleanups_squashed'
2020-01-09 07:32:39 -05:00
Nick Mathewson
d7b8377c28
or_options_st.h: Add an include and a struct declaration.
...
This frees us from some dependencies on include order.
2020-01-09 07:30:35 -05:00
Nick Mathewson
4f02812242
It's 2020. Update the copyright dates with "make update-copyright"
2020-01-08 18:39:17 -05:00
Nick Mathewson
1b63eea66c
Merge branch 'haxxpop/tcp_proxy_squashed' into tcp_proxy_squshed_and_merged
2020-01-06 13:41:20 -05:00
Nick Mathewson
1f498220bd
Merge remote-tracking branch 'tor-github/pr/1620'
2020-01-06 13:28:10 -05:00
Nick Mathewson
b6f099672b
Make ntmain.h functions stubs when NT_SERVICE not enabled.
...
This lets us simplify main.c a little, and avoid a practracker
exception.
Followup from #32883 .
2020-01-06 09:25:23 -05:00
Nick Mathewson
5c240db0bf
Restore feature where nt-services detect non-"run_tor" modes.
...
Followup for #32883 .
2020-01-06 09:25:23 -05:00
Nick Mathewson
54eec5342d
Initialize publish/subscribe code when running as an NT service.
...
Fixes bug 32778; bugfix on 0.4.1.1-alpha.
2020-01-06 09:22:57 -05:00
teor
cd160291a7
Code Style: Delete headers that are included twice
...
These changes were created using the "make autostyle" from
32522, and then split into commits.
2019-12-20 09:53:31 +10:00
Nick Mathewson
42e31b5c45
Mark TestingEstimatedDescriptorPropagationTime as obsolete.
...
We stopped looking at this option in 85cf6dcba3
, back when we
implemented the minimal pieces of prop275. Since then, we've had
code to validate and adjust this option, and to give it a different
value in testing networks, but the option hasn't actually done
anything.
We can safely mark it as OBSOLETE, since doing so does not make any
old configuration get rejected.
Closes ticket 32807.
2019-12-19 11:04:48 -05:00
Nick Mathewson
3210598c30
Move TestingDirVote{Exit,Guard,HSdir}{,IsStrict} to dirauth module
2019-12-19 10:42:44 -05:00
Nick Mathewson
3739503404
Move TestingMin{Exit,Fast}FlagThreshold to dirauth module.
2019-12-19 10:14:09 -05:00
Nick Mathewson
cde5abfdc6
Move TestingDirAuthTimeToLearnReachability into dirauth module.
2019-12-19 10:08:22 -05:00
Nick Mathewson
be9bc5981f
Move MinMeasuredBWsForAuthToIgnoreAdvertised to dirauth module.
2019-12-19 09:51:11 -05:00
Nick Mathewson
0c7fd83123
Move ConsensusParams to dirauth module.
2019-12-19 09:46:14 -05:00
Nick Mathewson
77dea66e19
Move MinUptimeHidServDirectoryV2 to dirauth module.
2019-12-19 09:43:25 -05:00
Nick Mathewson
b1d029b9a1
Move AuthDirTestEd25519LinkKeys to the dirauth module.
2019-12-19 09:38:25 -05:00
Nick Mathewson
f4f70e1f13
Move AuthDirSharedRandomness to dirauth module.
2019-12-19 09:34:27 -05:00
Nick Mathewson
99874ecc1d
Move AuthDirPinKeys to dirauth module.
2019-12-19 09:34:18 -05:00
Nick Mathewson
9386b0b28a
Move AuthDirListBadExits to dirauth module.
2019-12-19 09:24:57 -05:00
Nick Mathewson
eedab30a7b
Move AuthDirHasIPv6Connectivity into dirauth module.
2019-12-19 09:19:02 -05:00
Nick Mathewson
7d5e360c3b
Move BW-guarantee options in to dirauth module.
2019-12-19 08:57:47 -05:00
Nick Mathewson
ea91edff15
Dirauth options: move versioning options to dirauth module
...
This commit moves VersioningAuthoritativeDirectory,
RecommendedClientVersions, and RecommendedServerVersions.
2019-12-19 08:57:47 -05:00
Nick Mathewson
ffa3499d81
Add config object for dirauth; move one option there.
...
I've chosen the "AuthDirMaxServersPerAddr" option here for
simplicity, since it is used literally nowhere else besides the dirauth
module. Once we have all the infrastructure in place for this, we
can move more options into this structure.
2019-12-19 07:54:56 -05:00
Nick Mathewson
5e2318165d
Add "stub" files for disabled modules.
...
These modules are only built when the selected modules are disabled.
The provide stub implementations of the subsystem blocks. Later,
other stub implementations could move here.
Having real subsystem blocks here will let us handle disabled
configuration options better.
2019-12-19 07:54:56 -05:00
Nick Mathewson
fcb5656128
Merge branch 'ticket32609_squashed'
2019-12-04 12:15:28 -05:00
teor
9ad569c71d
practracker: Add missing .may_include files
...
All of these files contain "*.h", except for:
* src/app/config/.may_include
* src/test/.may_include
which also contain "*.inc".
This change prevents includes of "*.c" files, and other
unusually named files.
Part of 32609.
2019-12-04 12:15:22 -05:00
Neel Chauhan
99cf3f99c0
Make control_event_conf_changed() take a config_line_t
2019-11-26 22:12:23 -05:00
Nick Mathewson
ff7d0ebcfe
Fix a low-impact memory leak in options_act_reversible()
...
Found by Coverity as CID 1455953
Fixes bug 32575; bug not in any released Tor.
2019-11-22 09:04:36 -05:00
Nick Mathewson
d8ff7d0236
Merge branch 'reversible_3'
2019-11-21 07:49:18 -05:00
Nick Mathewson
b33f3c960d
options_act_reversible: add more comments to explain ordering
2019-11-20 09:49:25 -05:00
Nick Mathewson
a3d06179ce
Typo/grammar fixes.
2019-11-20 09:28:12 -05:00
Nick Mathewson
acb97cfa68
log config: Set safelogging_changed even if we aren't running Tor.
2019-11-20 09:26:47 -05:00
Nick Mathewson
89c355b386
Some tests for log changes, commit, and rollback
2019-11-20 09:26:47 -05:00
Nick Mathewson
a30d143228
Make KeyDirectory's GroupReadable behave the same as CacheDirectory's.
...
In #26913 we solved a bug where CacheDirectoryGroupReadable would
override DataDirectoryGroupReadable when the two directories are the
same. We never did the same for KeyDirectory, though, because
that's a rare setting.
Now that I'm testing this code, though, fixing this issue seems
fine. Fixes bug #27992 ; bugfix on 0.3.3.1-alpha.
2019-11-20 09:26:47 -05:00
Nick Mathewson
cd8c96ce02
Typo fix in warning message about ControlSocket
2019-11-20 09:26:47 -05:00
Nick Mathewson
cf7580ab06
Free options objects for which validation fails.
...
Also free options objects when we discard them due to
TestingTorOptions.
Fixes bug 32555; bug not in any released Tor.
2019-11-20 09:14:08 -05:00
Nick Mathewson
929b46f44a
Split listener configuration out of options_act_reversible()
2019-11-19 16:05:07 -05:00
Nick Mathewson
5060007f4b
Split log configuration out of options_act_reversible().
2019-11-19 16:03:32 -05:00
Nick Mathewson
20c24e72d9
options_act_reversible(): Extract more startup-only pieces.
...
These have to happen after opening listeners and before opening logs :/
2019-11-19 16:03:10 -05:00
Nick Mathewson
006ce47ffa
Extract a function for one-time-only pre-reversible options.
...
These changes _only_ happen at startup, and happen before _any_
reversible option change is set.
2019-11-19 16:03:10 -05:00
Nick Mathewson
effed7fb1c
Move some ControlSocket checks to options_validate_cb()
...
There is no reason for them be in options_act_reversible().
2019-11-19 16:03:10 -05:00
George Kadianakis
d28b6792cb
Merge branch 'tor-github/pr/1423'
2019-11-18 19:06:53 +02:00
teor
c34fb3413d
Merge remote-tracking branch 'tor-github/pr/1517'
2019-11-18 11:21:37 +10:00
Nick Mathewson
183f89ccac
Merge remote-tracking branch 'tor-github/pr/1545'
2019-11-16 15:30:00 -05:00
Neel Chauhan
c8859eb754
Remove the extra whitespace around the DARWIN #defines
2019-11-15 15:05:53 -05:00
Nick Mathewson
8b91680d5c
Doxygen: rename all .dox files to end with .md
...
Using a standard ending here will let other tools that expect
markdown understand our output here.
This commit was automatically generated with:
for fn in $(find src -name '*.dox'); do \
git mv "$fn" "${fn%.dox}.md"; \
done
2019-11-15 09:28:12 -05:00
Nick Mathewson
3a7369d0cf
Doxygen: remove /** and **/ from all .dox files
...
This is an automatically generated commit, made with:
find src -name '*.dox' | \
xargs perl -i -ne 'print unless (m#^\s*/?\*\*/?\s*$#);'
2019-11-15 09:23:51 -05:00
teor
d19f370aa2
Run "make autostyle"
2019-11-14 16:28:39 +10:00
teor
0df8bcfb6f
relay: Disable relay_sys when the relay module is disabled
...
Closes ticket 32245.
2019-11-14 16:27:06 +10:00
Nick Mathewson
0644530df2
ntmain: make service_fns struct anonymous.
2019-11-07 08:45:08 -05:00
Nick Mathewson
4845ab53f0
Make all our struct names end with "_t".
...
This is an automated commit, generated by this command:
./scripts/maint/rename_c_identifier.py \
address_ttl_s address_ttl_t \
aes_cnt_cipher aes_cnt_cipher_t \
authchallenge_data_s authchallenge_data_t \
authenticate_data_s authenticate_data_t \
cached_bw_event_s cached_bw_event_t \
cbuf cbuf_t \
cell_ewma_s cell_ewma_t \
certs_data_s certs_data_t \
channel_idmap_entry_s channel_idmap_entry_t \
channel_listener_s channel_listener_t \
channel_s channel_t \
channel_tls_s channel_tls_t \
circuit_build_times_s circuit_build_times_t \
circuit_muxinfo_s circuit_muxinfo_t \
circuitmux_policy_circ_data_s circuitmux_policy_circ_data_t \
circuitmux_policy_data_s circuitmux_policy_data_t \
circuitmux_policy_s circuitmux_policy_t \
circuitmux_s circuitmux_t \
coord coord_t \
cpuworker_job_u cpuworker_job_u_t \
cv_testinfo_s cv_testinfo_t \
ddmap_entry_s ddmap_entry_t \
dircollator_s dircollator_t \
dist_ops dist_ops_t \
ecdh_work_s ecdh_work_t \
ewma_policy_circ_data_s ewma_policy_circ_data_t \
ewma_policy_data_s ewma_policy_data_t \
fp_pair_map_entry_s fp_pair_map_entry_t \
fp_pair_map_s fp_pair_map_t \
guard_selection_s guard_selection_t \
mbw_cache_entry_s mbw_cache_entry_t \
outbuf_table_ent_s outbuf_table_ent_t \
queued_event_s queued_event_t \
replyqueue_s replyqueue_t \
rsa_work_s rsa_work_t \
sandbox_cfg_elem sandbox_cfg_elem_t \
scheduler_s scheduler_t \
smp_param smp_param_t \
socket_table_ent_s socket_table_ent_t \
state_s state_t \
threadpool_s threadpool_t \
timeout_cb timeout_cb_t \
tor_libevent_cfg tor_libevent_cfg_t \
tor_threadlocal_s tor_threadlocal_t \
url_table_ent_s url_table_ent_t \
worker_state_s worker_state_t \
workerthread_s workerthread_t \
workqueue_entry_s workqueue_entry_t
2019-11-07 08:41:22 -05:00
Nick Mathewson
280a9a4760
Move netstatus (mainloop) state fields into mainloop's state.
2019-11-07 07:28:43 -05:00
Nick Mathewson
3afbb29bee
subsysmgr: use IDX_NONE is an exception value, not -1.
2019-11-07 07:28:43 -05:00
Nick Mathewson
0f0a9bdf33
Stop using "config_suite_offset=-1" to indicate "no config suite."
...
Instead, create a separate "has_config_suite" boolean, so that only
top-level formats with config_suites need to declare an offset at
all.
2019-11-07 07:28:43 -05:00
Nick Mathewson
8cd3e66d93
Use new configuration architecture for crypto options
...
This is a comparatively simple change.
2019-11-07 07:28:43 -05:00
Nick Mathewson
b06e9d8ad5
Add testing-only functions to get the subsystem config/state indices
2019-11-07 07:28:43 -05:00
Nick Mathewson
52c0ab4af3
Add subsys functions for receiving/flushing states and options.
...
These functions are in the subsystem, not in the config_format_t,
since they are about how the format is _used_, not about _what it
is_.
2019-11-07 07:28:43 -05:00
Nick Mathewson
7ac4f9d5ec
Give subsystems optional config formats and state formats.
...
The formats, when provided, are now added to the global config_mgr_t
objects.
2019-11-07 07:28:43 -05:00
Nick Mathewson
a7cfddc8d1
Make a new structure for tracking subsystem status.
...
We used to have only one boolean per subsystem, but we're about to
have a little more information.
2019-11-07 07:28:43 -05:00
teor
aaef9a2519
relay: Stop failing on startup when the relay module is disabled
...
When the relay module is disabled, make "ClientOnly 1" and
"DirCache 0" by default. (But keep "ClientOnly 0" and
"DirCache 1" as the defaults for the unit tests.)
And run "make autostyle".
Part of ticket 32410.
2019-11-07 11:43:41 +10:00
Nick Mathewson
1ee17dc07a
OwningControllerFD should be immutable, not OwningControllerProcess.
...
This is a mistake I made when marking options as immutable.
Fixes bug 32399. Bug not in any released Tor.
2019-11-06 08:37:32 -05:00
Nick Mathewson
8933789fef
Merge branch 'doxygen_libs'
2019-11-05 08:05:49 -05:00
teor
655603c779
Merge remote-tracking branch 'tor-github/pr/1487'
...
Combine V_IMMUTABLE and FILENAME changes on PidFile.
2019-11-05 14:26:23 +10:00
teor
b9269d6d0a
Merge remote-tracking branch 'tor-github/pr/1486'
2019-11-05 14:23:56 +10:00
teor
6169469546
Merge remote-tracking branch 'tor-github/pr/1477'
2019-11-05 14:23:10 +10:00
teor
8b91fa7075
config: Run "make autostyle"
...
Part of 32213.
2019-11-05 12:01:29 +10:00
teor
cb8ebc0b4c
config: Rename new global functions with a prefix
...
This is an automated commit, generated by this command:
./scripts/maint/rename_c_identifier.py \
get_dirportfrontpage relay_get_dirportfrontpage \
parse_port_config port_parse_config \
count_real_listeners port_count_real_listeners \
parse_transport_line pt_parse_transport_line \
ensure_bandwidth_cap config_ensure_bandwidth_cap \
get_effective_bwrate relay_get_effective_bwrate \
get_effective_bwburst relay_get_effective_bwburst \
warn_nonlocal_ext_orports port_warn_nonlocal_ext_orports \
parse_ports_relay port_parse_ports_relay \
update_port_set_relay port_update_port_set_relay \
get_transport_bindaddr_from_config pt_get_bindaddr_from_config \
get_options_for_server_transport pt_get_options_for_server_transport
It was generated with --no-verify, because it has some long lines.
Part of 32213.
2019-11-05 11:28:57 +10:00
Nick Mathewson
db40202810
Document directories in "app"
2019-11-04 17:23:50 -05:00
Nick Mathewson
62a473debf
Doxygen: Avoid ambiguity in @dir directives
...
This commit was automatically generated with:
find src -name '*.dox' |xargs perl -i -pe 's{\@dir ([^/])}{\@dir /$1};'
2019-11-04 10:23:36 -05:00
Nick Mathewson
d3af23783c
Document our top-level directories
2019-11-04 07:40:20 -05:00
Nick Mathewson
7fc077ed25
Add stub directory-level documentation for most source directories
...
This includes app, core, feature, lib, and tools, but excludes
ext, test, and trunnel.
This was generated by the following shell script:
cd src
for dname in $(find lib core feature app tools -type d |grep -v \\.deps$); do
keyword="$(echo "$dname" |sed -e "s/\//_/" )"
target="${dname}/${keyword}.dox"
echo "$target"
cat <<EOF >"$target"
/**
@dir ${dname}
@brief ${dname}
**/
EOF
git add "$target"
done
2019-11-04 07:40:14 -05:00
teor
d665458085
config: Delete get_list_of_ports_to_forward()
...
Tor has not supported automatic port forwarding for some time.
2019-10-31 12:34:20 +10:00
teor
8036954bf5
config: Move warn_nonlocal_ext_orports() to relay
...
Part of 32213.
2019-10-31 12:34:20 +10:00