commit 55055396ccfb4878772a3bc8360bc3dd56d09c64 Merge: 5721ec22d 5298113da Author: Nick Mathewson <ni...@torproject.org> Date: Wed Mar 11 10:35:46 2020 -0400
Merge branch 'maint-0.4.1' into bug33032_041 .appveyor.yml | 2 + .gitignore | 14 +- .travis.yml | 4 +- ChangeLog | 1933 +++++ Makefile.am | 73 +- ReleaseNotes | 1802 +++++ autogen.sh | 5 +- changes/29241_diagnostic | 4 - changes/bug13221 | 5 - changes/bug24661 | 3 - changes/bug27197 | 3 - changes/bug27199 | 3 - changes/bug27740 | 4 - changes/bug27741 | 5 - changes/bug27750 | 6 - changes/bug27800 | 4 - changes/bug27804 | 3 - changes/bug27841 | 7 - changes/bug27948 | 6 - changes/bug27963_timeradd | 4 - changes/bug27968 | 3 - changes/bug28096 | 13 - changes/bug28115 | 3 - changes/bug28127 | 7 - changes/bug28183 | 4 - changes/bug28202 | 4 - changes/bug28245 | 6 - changes/bug28298 | 4 - changes/bug28303 | 3 - changes/bug28348_034 | 5 - changes/bug28399 | 4 - changes/bug28413 | 4 - changes/bug28419 | 3 - changes/bug28435 | 3 - changes/bug28441 | 4 - changes/bug28454 | 4 - changes/bug28485 | 3 - changes/bug28524 | 4 - changes/bug28525 | 7 - changes/bug28554 | 3 - changes/bug28562 | 5 - changes/bug28568 | 4 - changes/bug28569 | 3 - changes/bug28612 | 4 - changes/bug28619 | 6 - changes/bug28656 | 3 - changes/bug28698 | 3 - changes/bug28895 | 5 - changes/bug28920 | 6 - changes/bug28938 | 4 - changes/bug28974 | 3 - changes/bug28979 | 4 - changes/bug28981 | 5 - changes/bug28995 | 5 - changes/bug29017 | 4 - changes/bug29029 | 5 - changes/bug29036 | 5 - changes/bug29040 | 4 - changes/bug29042 | 5 - changes/bug29135 | 5 - changes/bug29144 | 5 - changes/bug29145 | 3 - changes/bug29161 | 3 - changes/bug29175_035 | 4 - changes/bug29241 | 6 - changes/bug29244 | 4 - changes/bug29530_035 | 5 - changes/bug29599 | 3 - changes/bug29601 | 6 - changes/bug29665 | 7 - changes/bug29670 | 4 - changes/bug29703 | 4 - changes/bug29706_minimal | 4 - changes/bug29875 | 11 - changes/bug29922 | 4 - changes/bug30011 | 4 - changes/bug30021 | 8 - changes/bug30040 | 9 - changes/bug30041 | 5 - changes/bug30148 | 4 - changes/bug30189 | 4 - changes/bug30190 | 3 - changes/bug30316 | 4 - changes/bug30452 | 3 - changes/bug30475 | 4 - changes/bug30561 | 6 - changes/bug30649 | 4 + changes/bug30942 | 4 + changes/bug30956 | 4 + changes/bug31024 | 4 + changes/bug31027 | 3 + changes/bug31080_041 | 4 + changes/bug31356_and_logs | 11 + changes/bug31552 | 5 + changes/bug31570 | 5 + changes/bug31594 | 5 + changes/bug31614 | 9 + changes/bug31696 | 5 + changes/bug31736 | 3 + changes/bug31810 | 4 + changes/bug31897 | 3 + changes/bug31898 | 4 + changes/bug32108 | 8 + changes/bug32778 | 3 + changes/bug32841 | 4 + changes/cid1444119 | 3 - changes/doc30630 | 3 + changes/geoip-2018-11-06 | 4 - changes/geoip-2018-12-05 | 4 - changes/geoip-2019-01-03 | 4 - changes/geoip-2019-02-05 | 4 - changes/geoip-2019-03-04 | 4 - changes/geoip-2019-04-02 | 4 - changes/geoip-2019-05-13 | 4 - changes/rust_asan | 8 - changes/ticket19566 | 6 - changes/ticket24803 | 5 - changes/ticket27471 | 5 - changes/ticket27751 | 2 - changes/ticket27838 | 4 - changes/ticket27913 | 3 - changes/ticket27995 | 4 - changes/ticket28026 | 3 - changes/ticket28113 | 5 - changes/ticket28128 | 4 - changes/ticket28229_diag | 3 - changes/ticket28275 | 4 - changes/ticket28318 | 3 - changes/ticket28459 | 4 - changes/ticket28574 | 4 - changes/ticket28668 | 3 - changes/ticket28669 | 6 - changes/ticket28838 | 8 - changes/ticket28851 | 4 - changes/ticket28879 | 5 - changes/ticket28881 | 4 - changes/ticket28883 | 4 - changes/ticket28912 | 6 - changes/ticket28924 | 4 - changes/ticket28973 | 6 - changes/ticket29026 | 4 - changes/ticket29160 | 4 - changes/ticket29168 | 5 - changes/ticket29435 | 3 - changes/ticket29617 | 4 - changes/ticket29702 | 4 - changes/ticket29806 | 7 - changes/ticket29962 | 3 - changes/ticket30117 | 4 - changes/ticket30213 | 3 - changes/ticket30234 | 2 - changes/ticket30454 | 10 - changes/ticket30686 | 5 + changes/ticket31001 | 6 + changes/ticket31091 | 3 + changes/ticket31311 | 3 + changes/ticket31549 | 4 + changes/ticket31772 | 4 + configure.ac | 66 +- contrib/README | 2 - contrib/client-tools/torify | 2 +- .../dirauth-tools/nagios-check-tor-authority-cert | 10 +- contrib/dist/suse/tor.sh.in | 118 - contrib/dist/tor.sh.in | 123 - contrib/include.am | 3 - contrib/operator-tools/linux-tor-prio.sh | 192 - contrib/or-tools/check-tor | 41 - contrib/win32build/tor-mingw.nsi.in | 2 +- doc/HACKING/CodingStandards.md | 41 +- doc/HACKING/CodingStandardsRust.md | 6 +- doc/HACKING/HelpfulTools.md | 15 + doc/HACKING/Maintaining.md | 113 + doc/HACKING/ReleasingTor.md | 129 +- doc/asciidoc-helper.sh | 6 +- doc/tor.1.txt | 214 +- scripts/coccinelle/ctrl-reply-cleanup.cocci | 43 + scripts/coccinelle/ctrl-reply.cocci | 87 + scripts/coccinelle/tor-coccinelle.h | 3 + scripts/codegen/fuzzing_include_am.py | 5 +- scripts/codegen/run_trunnel.sh | 4 +- scripts/git/git-merge-forward.sh | 236 + scripts/git/git-pull-all.sh | 224 + scripts/git/git-push-all.sh | 11 + scripts/git/post-merge.git-hook | 45 + scripts/git/pre-commit.git-hook | 45 + scripts/git/pre-push.git-hook | 108 + scripts/maint/add_c_file.py | 251 + scripts/maint/checkIncludes.py | 68 +- scripts/maint/checkSpace.pl | 32 + scripts/maint/fallback.whitelist | 997 --- scripts/maint/format_changelog.py | 2 +- scripts/maint/generateFallbackDirLine.py | 38 - scripts/maint/lintChanges.py | 56 + scripts/maint/lookupFallbackDirContact.py | 28 - scripts/maint/practracker/exceptions.txt | 288 + scripts/maint/practracker/metrics.py | 50 + scripts/maint/practracker/practracker.py | 216 + scripts/maint/practracker/practracker_tests.py | 50 + scripts/maint/practracker/problem.py | 158 + scripts/maint/practracker/util.py | 28 + scripts/maint/rectify_include_paths.py | 15 +- scripts/maint/run_calltool.sh | 4 +- scripts/maint/updateCopyright.pl | 6 +- scripts/maint/updateFallbackDirs.py | 2216 ------ scripts/maint/updateRustDependencies.sh | 18 +- scripts/maint/updateVersions.pl.in | 59 - scripts/maint/update_versions.py | 133 + scripts/test/chutney-git-bisect.sh | 14 +- scripts/test/cov-diff | 9 +- scripts/test/cov-test-determinism.sh | 51 + scripts/test/coverage | 18 +- scripts/test/scan-build.sh | 5 + src/app/config/config.c | 105 +- src/app/config/config.h | 2 - src/app/config/or_options_st.h | 38 +- src/app/config/or_state_st.h | 9 +- src/app/config/statefile.c | 11 +- src/app/config/statefile.h | 2 +- src/app/main/main.c | 285 +- src/app/main/main.h | 6 +- src/app/main/ntmain.c | 8 + src/app/main/shutdown.c | 169 + src/app/main/shutdown.h | 18 + src/app/main/subsysmgr.c | 252 + src/app/main/subsysmgr.h | 29 + src/app/main/subsystem_list.c | 63 + src/config/mmdb-convert.py | 4 +- src/config/torrc.sample.in | 6 +- src/core/crypto/hs_ntor.c | 14 +- src/core/crypto/onion_crypto.h | 2 +- src/core/crypto/relay_crypto.c | 48 +- src/core/crypto/relay_crypto.h | 11 + src/core/include.am | 91 +- src/core/mainloop/connection.c | 93 +- src/core/mainloop/connection.h | 5 +- src/core/mainloop/cpuworker.c | 7 +- src/core/mainloop/mainloop.c | 826 +- src/core/mainloop/mainloop.h | 20 +- src/core/mainloop/mainloop_pubsub.c | 170 + src/core/mainloop/mainloop_pubsub.h | 24 + src/core/mainloop/mainloop_sys.c | 32 + src/core/mainloop/mainloop_sys.h | 12 + src/core/mainloop/netstatus.c | 136 + src/core/mainloop/netstatus.h | 13 +- src/core/mainloop/periodic.c | 220 +- src/core/mainloop/periodic.h | 28 +- src/core/or/addr_policy_st.h | 2 +- src/core/or/address_set.h | 2 +- src/core/or/cell_queue_st.h | 2 +- src/core/or/cell_st.h | 2 +- src/core/or/channel.c | 11 + src/core/or/channeltls.c | 111 +- src/core/or/channeltls.h | 1 - src/core/or/circuit_st.h | 64 +- src/core/or/circuitbuild.c | 205 +- src/core/or/circuitbuild.h | 14 +- src/core/or/circuitlist.c | 168 +- src/core/or/circuitlist.h | 34 +- src/core/or/circuitmux.c | 29 +- src/core/or/circuitpadding.c | 3033 ++++++++ src/core/or/circuitpadding.h | 808 ++ src/core/or/circuitpadding_machines.c | 458 ++ src/core/or/circuitpadding_machines.h | 35 + src/core/or/circuitstats.c | 10 +- src/core/or/circuituse.c | 44 +- src/core/or/command.c | 2 +- src/core/or/connection_edge.c | 71 +- src/core/or/connection_edge.h | 1 + src/core/or/connection_or.c | 186 +- src/core/or/connection_or.h | 30 +- src/core/or/connection_st.h | 2 +- src/core/or/cpath_build_state_st.h | 2 +- src/core/or/crypt_path.c | 262 + src/core/or/crypt_path.h | 46 + src/core/or/crypt_path_reference_st.h | 2 +- src/core/or/crypt_path_st.h | 25 +- src/core/or/destroy_cell_queue_st.h | 2 +- src/core/or/dos.h | 4 +- src/core/or/edge_connection_st.h | 2 +- src/core/or/entry_connection_st.h | 2 +- src/core/or/entry_port_cfg_st.h | 2 +- src/core/or/extend_info_st.h | 2 +- src/core/or/half_edge_st.h | 2 +- src/core/or/listener_connection_st.h | 2 +- src/core/or/ocirc_event.c | 84 + src/core/or/ocirc_event.h | 89 + src/core/or/ocirc_event_sys.h | 13 + src/core/or/or.h | 11 +- src/core/or/or_circuit_st.h | 7 +- src/core/or/or_connection_st.h | 4 +- src/core/or/or_handshake_certs_st.h | 2 +- src/core/or/or_handshake_state_st.h | 2 +- src/core/or/or_periodic.c | 65 + src/core/or/or_periodic.h | 17 + src/core/or/or_sys.c | 43 + src/core/or/or_sys.h | 17 + src/core/or/orconn_event.c | 81 + src/core/or/orconn_event.h | 120 + src/core/or/orconn_event_sys.h | 12 + src/core/or/origin_circuit_st.h | 6 +- src/core/or/policies.c | 196 +- src/core/or/policies.h | 3 + src/core/or/port_cfg_st.h | 2 +- src/core/or/protover.c | 14 +- src/core/or/protover.h | 24 +- src/core/or/relay.c | 510 +- src/core/or/relay.h | 14 +- src/core/or/relay_crypto_st.h | 4 +- src/core/or/scheduler.c | 2 +- src/core/or/scheduler_kist.c | 4 +- src/core/or/sendme.c | 710 ++ src/core/or/sendme.h | 80 + src/core/or/server_port_cfg_st.h | 2 +- src/core/or/socks_request_st.h | 2 +- src/core/or/tor_version_st.h | 2 +- src/core/or/var_cell_st.h | 2 +- src/core/or/versions.c | 106 +- src/core/or/versions.h | 4 + src/core/proto/proto_cell.c | 2 +- src/core/proto/proto_control0.c | 2 +- src/core/proto/proto_ext_or.c | 2 +- src/core/proto/proto_http.c | 2 +- src/core/proto/proto_socks.c | 4 +- src/ext/.may_include | 10 + src/ext/csiphash.c | 10 +- src/ext/include.am | 2 + src/ext/readpassphrase.c | 2 +- src/ext/timeouts/.may_include | 5 + src/ext/timeouts/test-timeout.c | 2 +- src/ext/timeouts/timeout.c | 11 +- src/ext/timeouts/timeout.h | 4 +- src/ext/tinytest.c | 6 + src/ext/tinytest.h | 3 + src/feature/api/tor_api.c | 4 +- src/feature/api/tor_api.h | 2 +- src/feature/client/addressmap.c | 2 +- src/feature/client/bridges.c | 5 +- src/feature/client/circpathbias.c | 35 +- src/feature/client/dnsserv.c | 6 +- src/feature/client/entrynodes.c | 2 +- src/feature/client/transports.c | 368 +- src/feature/client/transports.h | 18 +- src/feature/control/btrack.c | 53 + src/feature/control/btrack_circuit.c | 164 + src/feature/control/btrack_circuit.h | 15 + src/feature/control/btrack_orconn.c | 206 + src/feature/control/btrack_orconn.h | 38 + src/feature/control/btrack_orconn_cevent.c | 159 + src/feature/control/btrack_orconn_cevent.h | 18 + src/feature/control/btrack_orconn_maps.c | 223 + src/feature/control/btrack_orconn_maps.h | 18 + src/feature/control/btrack_sys.h | 14 + src/feature/control/control.c | 7983 +------------------- src/feature/control/control.h | 374 +- src/feature/control/control_auth.c | 445 ++ src/feature/control/control_auth.h | 32 + src/feature/control/control_bootstrap.c | 383 + src/feature/control/control_cmd.c | 2410 ++++++ src/feature/control/control_cmd.h | 112 + src/feature/control/control_cmd_args_st.h | 52 + src/feature/control/control_connection_st.h | 5 +- src/feature/control/control_events.c | 2318 ++++++ src/feature/control/control_events.h | 352 + src/feature/control/control_fmt.c | 181 + src/feature/control/control_fmt.h | 23 + src/feature/control/control_getinfo.c | 1654 ++++ src/feature/control/control_getinfo.h | 61 + src/feature/control/control_proto.c | 276 + src/feature/control/control_proto.h | 48 + src/feature/control/fmt_serverstatus.c | 6 - src/feature/control/fmt_serverstatus.h | 2 +- src/feature/control/getinfo_geoip.h | 2 +- src/feature/dirauth/authmode.h | 6 +- src/feature/dirauth/bridgeauth.c | 55 + src/feature/dirauth/bridgeauth.h | 12 + src/feature/dirauth/bwauth.c | 61 +- src/feature/dirauth/bwauth.h | 6 +- src/feature/dirauth/dirauth_periodic.c | 161 + src/feature/dirauth/dirauth_periodic.h | 25 + src/feature/dirauth/dirauth_sys.c | 40 + src/feature/dirauth/dirauth_sys.h | 12 + src/feature/dirauth/dirvote.c | 104 +- src/feature/dirauth/dirvote.h | 15 +- src/feature/dirauth/dsigs_parse.c | 2 +- src/feature/dirauth/dsigs_parse.h | 2 +- src/feature/dirauth/guardfraction.h | 2 +- src/feature/dirauth/keypin.h | 18 +- src/feature/dirauth/ns_detached_signatures_st.h | 2 +- src/feature/dirauth/process_descs.c | 71 +- src/feature/dirauth/process_descs.h | 86 +- src/feature/dirauth/reachability.h | 33 +- src/feature/dirauth/recommend_pkg.h | 14 +- src/feature/dirauth/shared_random.c | 12 +- src/feature/dirauth/shared_random.h | 6 +- src/feature/dirauth/shared_random_state.c | 61 +- src/feature/dirauth/vote_microdesc_hash_st.h | 2 +- src/feature/dirauth/voteflags.c | 108 +- src/feature/dirauth/voteflags.h | 20 +- src/feature/dircache/cached_dir_st.h | 2 +- src/feature/dircache/consdiffmgr.c | 83 +- src/feature/dircache/consdiffmgr.h | 11 +- src/feature/dircache/dircache.c | 160 +- src/feature/dircache/dircache.h | 2 +- src/feature/dircache/dirserv.c | 25 +- src/feature/dircache/dirserv.h | 1 + src/feature/dirclient/dir_server_st.h | 2 +- src/feature/dirclient/dirclient.c | 27 +- src/feature/dirclient/dirclient.h | 2 +- src/feature/dirclient/dlstatus.h | 2 +- src/feature/dirclient/download_status_st.h | 2 +- src/feature/dircommon/consdiff.c | 42 +- src/feature/dircommon/consdiff.h | 15 +- src/feature/dircommon/dir_connection_st.h | 2 +- src/feature/dircommon/vote_timing_st.h | 2 +- src/feature/dircommon/voting_schedule.c | 2 +- src/feature/dircommon/voting_schedule.h | 2 +- src/feature/dirparse/authcert_parse.c | 16 +- src/feature/dirparse/authcert_parse.h | 1 + src/feature/dirparse/microdesc_parse.c | 37 +- src/feature/dirparse/microdesc_parse.h | 2 +- src/feature/dirparse/ns_parse.c | 59 +- src/feature/dirparse/ns_parse.h | 14 +- src/feature/dirparse/parsecommon.c | 51 +- src/feature/dirparse/routerparse.c | 4 +- src/feature/dirparse/sigcommon.h | 2 +- src/feature/dirparse/signing.h | 2 +- src/feature/dirparse/unparseable.h | 2 +- src/feature/hibernate/hibernate.c | 31 +- src/feature/hibernate/hibernate.h | 1 + src/feature/hs/hs_cell.c | 9 +- src/feature/hs/hs_circuit.c | 93 +- src/feature/hs/hs_client.c | 64 +- src/feature/hs/hs_client.h | 4 + src/feature/hs/hs_common.c | 189 +- src/feature/hs/hs_common.h | 7 +- src/feature/hs/hs_config.c | 9 - src/feature/hs/hs_control.c | 39 +- src/feature/hs/hs_control.h | 4 + src/feature/hs/hs_descriptor.c | 327 +- src/feature/hs/hs_descriptor.h | 29 +- src/feature/hs/hs_intropoint.c | 8 +- src/feature/hs/hs_service.c | 167 +- src/feature/hs/hs_service.h | 9 +- src/feature/hs/hs_stats.h | 4 + src/feature/hs/hsdir_index_st.h | 2 +- src/feature/hs_common/shared_random_client.h | 2 +- src/feature/keymgt/loadkey.h | 2 +- src/feature/nodelist/authcert.c | 3 +- src/feature/nodelist/authcert.h | 2 +- src/feature/nodelist/authority_cert_st.h | 2 +- src/feature/nodelist/desc_store_st.h | 2 +- src/feature/nodelist/describe.h | 2 +- src/feature/nodelist/dirlist.c | 2 +- src/feature/nodelist/dirlist.h | 2 +- src/feature/nodelist/document_signature_st.h | 2 +- src/feature/nodelist/extrainfo_st.h | 2 +- src/feature/nodelist/fmt_routerstatus.c | 46 +- src/feature/nodelist/microdesc.c | 48 +- src/feature/nodelist/microdesc_st.h | 7 +- src/feature/nodelist/networkstatus.c | 294 +- src/feature/nodelist/networkstatus.h | 16 +- src/feature/nodelist/networkstatus_sr_info_st.h | 2 +- src/feature/nodelist/networkstatus_st.h | 5 +- src/feature/nodelist/networkstatus_voter_info_st.h | 2 +- src/feature/nodelist/nickname.h | 2 +- src/feature/nodelist/node_select.c | 75 +- src/feature/nodelist/node_select.h | 4 +- src/feature/nodelist/node_st.h | 2 +- src/feature/nodelist/nodefamily.c | 416 + src/feature/nodelist/nodefamily.h | 50 + src/feature/nodelist/nodefamily_st.h | 48 + src/feature/nodelist/nodelist.c | 244 +- src/feature/nodelist/nodelist.h | 18 +- src/feature/nodelist/routerinfo.h | 2 +- src/feature/nodelist/routerinfo_st.h | 2 +- src/feature/nodelist/routerlist.c | 14 +- src/feature/nodelist/routerlist_st.h | 2 +- src/feature/nodelist/routerset.c | 2 +- src/feature/nodelist/routerstatus_st.h | 4 +- src/feature/nodelist/signed_descriptor_st.h | 2 +- src/feature/nodelist/torcert.c | 6 +- src/feature/nodelist/torcert.h | 2 +- src/feature/nodelist/vote_routerstatus_st.h | 2 +- src/feature/relay/dns.c | 93 +- src/feature/relay/dns.h | 5 + src/feature/relay/ext_orport.c | 5 +- src/feature/relay/onion_queue.c | 10 +- src/feature/relay/onion_queue.h | 2 +- src/feature/relay/relay_periodic.c | 308 + src/feature/relay/relay_periodic.h | 18 + src/feature/relay/relay_sys.c | 48 + src/feature/relay/relay_sys.h | 17 + src/feature/relay/router.c | 618 +- src/feature/relay/router.h | 27 +- src/feature/relay/routerkeys.c | 18 +- src/feature/relay/routerkeys.h | 4 +- src/feature/relay/selftest.c | 3 +- src/feature/relay/selftest.h | 2 +- src/feature/rend/rend_authorized_client_st.h | 2 +- .../rend/rend_encoded_v2_service_descriptor_st.h | 2 +- src/feature/rend/rend_intro_point_st.h | 2 +- src/feature/rend/rend_service_descriptor_st.h | 2 +- src/feature/rend/rendcache.c | 16 +- src/feature/rend/rendclient.c | 24 +- src/feature/rend/rendcommon.c | 7 +- src/feature/rend/rendmid.c | 4 +- src/feature/rend/rendparse.c | 17 +- src/feature/rend/rendparse.h | 2 +- src/feature/rend/rendservice.c | 34 +- src/feature/stats/geoip_stats.c | 4 +- src/feature/stats/predict_ports.h | 2 +- src/feature/stats/rephist.h | 2 +- src/include.am | 5 + src/lib/arch/bytes.h | 6 +- src/lib/arch/include.am | 1 + src/lib/buf/.may_include | 10 + src/lib/{container => buf}/buffers.c | 2 +- src/lib/{container => buf}/buffers.h | 0 src/lib/buf/include.am | 19 + src/lib/cc/.may_include | 1 + src/lib/cc/compat_compiler.h | 14 +- src/lib/cc/ctassert.h | 53 + src/lib/cc/include.am | 2 + src/lib/cc/torint.h | 17 +- src/lib/compress/.may_include | 2 + src/lib/compress/compress.c | 21 +- src/lib/compress/compress.h | 2 +- src/lib/compress/compress_buf.c | 2 +- src/lib/compress/compress_sys.h | 14 + src/lib/compress/compress_zstd.c | 16 +- src/lib/compress/include.am | 3 + src/lib/container/.may_include | 9 +- src/lib/container/bitarray.h | 2 +- src/lib/container/bloomfilt.c | 2 +- src/lib/container/include.am | 7 +- src/lib/container/map.c | 2 +- src/lib/container/map.h | 4 +- src/lib/container/namemap.c | 184 + src/lib/container/namemap.h | 35 + src/lib/container/namemap_st.h | 34 + src/lib/container/order.h | 2 +- src/lib/container/smartlist.h | 2 +- src/lib/crypt_ops/.may_include | 5 +- src/lib/crypt_ops/crypto_cipher.h | 2 +- src/lib/crypt_ops/crypto_curve25519.h | 4 +- src/lib/crypt_ops/crypto_dh_openssl.c | 8 +- src/lib/crypt_ops/crypto_digest.c | 705 +- src/lib/crypt_ops/crypto_digest.h | 2 + src/lib/crypt_ops/crypto_digest_nss.c | 560 ++ src/lib/crypt_ops/crypto_digest_openssl.c | 522 ++ src/lib/crypt_ops/crypto_ed25519.c | 2 +- src/lib/crypt_ops/crypto_format.c | 90 +- src/lib/crypt_ops/crypto_format.h | 12 +- src/lib/crypt_ops/crypto_hkdf.c | 10 +- src/lib/crypt_ops/crypto_init.c | 64 +- src/lib/crypt_ops/crypto_init.h | 2 +- src/lib/crypt_ops/crypto_nss_mgt.h | 4 +- src/lib/crypt_ops/crypto_ope.c | 4 +- src/lib/crypt_ops/crypto_ope.h | 4 +- src/lib/crypt_ops/crypto_openssl_mgt.c | 8 +- src/lib/crypt_ops/crypto_openssl_mgt.h | 2 +- src/lib/crypt_ops/crypto_rand.c | 127 +- src/lib/crypt_ops/crypto_rand.h | 58 + src/lib/crypt_ops/crypto_rand_fast.c | 439 ++ src/lib/crypt_ops/crypto_rand_numeric.c | 194 + src/lib/crypt_ops/crypto_rsa.c | 2 +- src/lib/crypt_ops/crypto_rsa.h | 8 +- src/lib/crypt_ops/crypto_rsa_nss.c | 2 +- src/lib/crypt_ops/crypto_s2k.c | 4 +- src/lib/crypt_ops/crypto_sys.h | 14 + src/lib/crypt_ops/crypto_util.c | 2 +- src/lib/crypt_ops/digestset.c | 2 +- src/lib/crypt_ops/digestset.h | 2 +- src/lib/crypt_ops/include.am | 7 + src/lib/ctime/include.am | 2 + src/lib/defs/dh_sizes.h | 2 +- src/lib/defs/digest_sizes.h | 2 +- src/lib/defs/include.am | 3 + src/lib/defs/logging_types.h | 23 + src/lib/defs/time.h | 23 + src/lib/defs/x25519_sizes.h | 2 +- src/lib/dispatch/.may_include | 11 + src/lib/dispatch/dispatch.h | 114 + src/lib/dispatch/dispatch_cfg.c | 141 + src/lib/dispatch/dispatch_cfg.h | 45 + src/lib/dispatch/dispatch_cfg_st.h | 25 + src/lib/dispatch/dispatch_core.c | 260 + src/lib/dispatch/dispatch_naming.c | 63 + src/lib/dispatch/dispatch_naming.h | 46 + src/lib/dispatch/dispatch_new.c | 176 + src/lib/dispatch/dispatch_st.h | 108 + src/lib/dispatch/include.am | 27 + src/lib/dispatch/msgtypes.h | 80 + src/lib/encoding/.may_include | 1 + src/lib/encoding/binascii.c | 22 +- src/lib/encoding/binascii.h | 3 +- src/lib/encoding/confline.c | 13 + src/lib/encoding/confline.h | 2 + src/lib/encoding/include.am | 6 + src/lib/encoding/keyval.h | 2 +- src/lib/encoding/kvline.c | 289 + src/lib/encoding/kvline.h | 26 + src/lib/encoding/pem.h | 2 +- src/lib/encoding/qstring.c | 90 + src/lib/encoding/qstring.h | 18 + src/lib/encoding/time_fmt.h | 2 +- src/lib/err/.may_include | 3 + src/lib/err/backtrace.c | 32 +- src/lib/err/backtrace.h | 7 +- src/lib/err/include.am | 10 +- src/lib/err/torerr.c | 74 +- src/lib/err/torerr.h | 10 +- src/lib/err/torerr_sys.c | 43 + src/lib/err/torerr_sys.h | 14 + src/lib/evloop/.may_include | 4 +- src/lib/evloop/include.am | 3 +- src/lib/evloop/timers.c | 3 +- src/lib/evloop/token_bucket.h | 4 +- src/lib/evloop/workqueue.c | 18 +- src/lib/evloop/workqueue.h | 1 - src/lib/fdio/fdio.c | 4 + src/lib/fdio/include.am | 2 + src/lib/fs/.may_include | 2 +- src/lib/fs/conffile.h | 2 +- src/lib/fs/dir.h | 2 +- src/lib/fs/files.h | 14 +- src/lib/fs/include.am | 2 + src/lib/fs/lockfile.h | 2 +- src/lib/fs/mmap.c | 2 +- src/lib/fs/mmap.h | 2 +- src/lib/fs/path.h | 2 +- src/lib/fs/userdb.h | 4 +- src/lib/fs/winlib.h | 4 +- src/lib/geoip/country.h | 2 +- src/lib/geoip/include.am | 2 + src/lib/intmath/addsub.h | 2 +- src/lib/intmath/cmp.h | 3 + src/lib/intmath/include.am | 2 + src/lib/intmath/logic.h | 2 +- src/lib/intmath/weakrng.h | 2 +- src/lib/lock/compat_mutex.c | 10 +- src/lib/lock/compat_mutex.h | 2 +- src/lib/lock/compat_mutex_pthreads.c | 16 +- src/lib/lock/include.am | 2 + src/lib/log/.may_include | 5 +- src/lib/log/escape.h | 2 +- src/lib/log/include.am | 12 +- src/lib/log/log.c | 109 +- src/lib/log/log.h | 112 +- src/lib/log/log_sys.c | 35 + src/lib/log/log_sys.h | 14 + src/lib/log/ratelim.h | 2 +- src/lib/log/util_bug.c | 72 +- src/lib/log/util_bug.h | 55 +- src/lib/log/win32err.h | 2 +- src/lib/malloc/.may_include | 2 +- src/lib/malloc/include.am | 8 +- src/lib/malloc/malloc.h | 4 +- src/lib/malloc/map_anon.c | 271 + src/lib/malloc/map_anon.h | 71 + src/lib/math/.may_include | 2 + src/lib/math/fp.c | 20 + src/lib/math/fp.h | 3 +- src/lib/math/include.am | 9 +- src/lib/math/laplace.h | 2 +- src/lib/math/prob_distr.c | 1688 +++++ src/lib/math/prob_distr.h | 253 + src/lib/memarea/.may_include | 2 +- src/lib/memarea/include.am | 2 + src/lib/memarea/memarea.c | 3 +- src/lib/meminfo/include.am | 2 + src/lib/meminfo/meminfo.h | 2 +- src/lib/net/.may_include | 6 +- src/lib/net/address.c | 26 +- src/lib/net/alertsock.h | 2 +- src/lib/net/buffers_net.c | 136 +- src/lib/net/buffers_net.h | 9 +- src/lib/net/gethostname.h | 2 +- src/lib/net/inaddr.c | 8 +- src/lib/net/inaddr.h | 2 +- src/lib/net/inaddr_st.h | 2 +- src/lib/net/include.am | 4 + src/lib/net/nettypes.h | 2 +- src/lib/net/network_sys.c | 44 + src/lib/net/network_sys.h | 14 + src/lib/net/resolve.c | 15 +- src/lib/net/resolve.h | 4 +- src/lib/net/socket.c | 37 +- src/lib/net/socket.h | 3 +- src/lib/net/socketpair.c | 11 +- src/lib/net/socketpair.h | 2 +- src/lib/net/socks5_status.h | 2 +- src/lib/osinfo/include.am | 2 + src/lib/osinfo/uname.h | 2 +- src/lib/process/.may_include | 7 +- src/lib/process/daemon.h | 2 +- src/lib/process/env.h | 2 +- src/lib/process/include.am | 18 +- src/lib/process/pidfile.h | 2 +- src/lib/process/process.c | 797 ++ src/lib/process/process.h | 145 + src/lib/process/process_sys.c | 33 + src/lib/process/process_sys.h | 14 + src/lib/process/process_unix.c | 698 ++ src/lib/process/process_unix.h | 68 + src/lib/process/process_win32.c | 1105 +++ src/lib/process/process_win32.h | 97 + src/lib/process/setuid.h | 2 +- src/lib/process/subprocess.c | 1236 --- src/lib/process/subprocess.h | 134 - src/lib/process/waitpid.c | 2 +- src/lib/process/winprocess_sys.c | 64 + src/lib/process/winprocess_sys.h | 14 + src/lib/pubsub/.may_include | 10 + src/lib/pubsub/include.am | 28 + src/lib/pubsub/pub_binding_st.h | 38 + src/lib/pubsub/pubsub.h | 89 + src/lib/pubsub/pubsub_build.c | 307 + src/lib/pubsub/pubsub_build.h | 92 + src/lib/pubsub/pubsub_builder_st.h | 161 + src/lib/pubsub/pubsub_check.c | 428 ++ src/lib/pubsub/pubsub_connect.h | 54 + src/lib/pubsub/pubsub_flags.h | 32 + src/lib/pubsub/pubsub_macros.h | 373 + src/lib/pubsub/pubsub_publish.c | 72 + src/lib/pubsub/pubsub_publish.h | 15 + src/lib/sandbox/.may_include | 7 +- src/lib/sandbox/include.am | 2 + src/lib/sandbox/sandbox.c | 21 +- src/lib/smartlist_core/.may_include | 2 +- src/lib/smartlist_core/include.am | 2 + src/lib/smartlist_core/smartlist_core.c | 26 + src/lib/smartlist_core/smartlist_core.h | 3 +- src/lib/smartlist_core/smartlist_foreach.h | 13 + src/lib/smartlist_core/smartlist_split.h | 2 +- src/lib/string/.may_include | 4 +- src/lib/string/compat_string.c | 4 +- src/lib/string/compat_string.h | 8 +- src/lib/string/include.am | 2 + src/lib/string/parse_int.h | 2 +- src/lib/string/printf.c | 8 +- src/lib/string/printf.h | 2 +- src/lib/string/scanf.h | 2 +- src/lib/string/util_string.c | 37 +- src/lib/string/util_string.h | 7 +- src/lib/subsys/.may_include | 1 + src/lib/subsys/include.am | 4 + src/lib/subsys/subsys.h | 95 + src/lib/term/.may_include | 3 +- src/lib/term/getpass.c | 2 +- src/lib/term/getpass.h | 2 +- src/lib/term/include.am | 2 + src/lib/testsupport/include.am | 1 + src/lib/testsupport/testsupport.h | 2 +- src/lib/thread/.may_include | 1 + src/lib/thread/compat_threads.c | 26 +- src/lib/thread/include.am | 7 +- src/lib/thread/numcpus.h | 2 +- src/lib/thread/thread_sys.h | 14 + src/lib/thread/threads.h | 12 +- src/lib/time/.may_include | 2 + src/lib/time/compat_time.c | 28 +- src/lib/time/compat_time.h | 146 +- src/lib/time/include.am | 4 + src/lib/time/time_sys.c | 26 + src/lib/time/time_sys.h | 14 + src/lib/time/tvdiff.c | 3 +- src/lib/time/tvdiff.h | 2 +- src/lib/tls/.may_include | 7 +- src/lib/tls/buffers_tls.c | 2 +- src/lib/tls/include.am | 3 + src/lib/tls/nss_countbytes.h | 2 +- src/lib/tls/tortls.c | 14 + src/lib/tls/tortls.h | 10 +- src/lib/tls/tortls_internal.h | 6 +- src/lib/tls/tortls_openssl.c | 16 +- src/lib/tls/tortls_st.h | 4 +- src/lib/tls/tortls_sys.h | 14 + src/lib/tls/x509.h | 6 +- src/lib/tls/x509_internal.h | 2 +- src/lib/tls/x509_nss.c | 8 +- src/lib/tls/x509_openssl.c | 4 +- src/lib/trace/debug.h | 2 +- src/lib/trace/events.h | 6 +- src/lib/trace/include.am | 3 +- src/lib/trace/trace.h | 2 +- src/lib/version/.may_include | 3 + src/lib/{log => version}/git_revision.c | 2 +- src/lib/{log => version}/git_revision.h | 0 src/lib/version/include.am | 27 + src/lib/version/torversion.h | 12 + src/lib/version/version.c | 50 + src/lib/wallclock/.may_include | 1 + src/lib/wallclock/approx_time.c | 16 + src/lib/wallclock/approx_time.h | 2 +- src/lib/wallclock/include.am | 5 +- src/lib/wallclock/time_to_tm.h | 2 +- src/lib/wallclock/timeval.h | 23 +- src/lib/wallclock/tor_gettimeofday.h | 2 +- src/lib/wallclock/wallclock_sys.h | 14 + src/rust/build.rs | 4 +- src/rust/protover/ffi.rs | 2 + src/rust/protover/protover.rs | 12 +- src/rust/tor_log/tor_log.rs | 8 +- src/rust/tor_util/strings.rs | 6 +- src/test/Makefile.nmake | 8 +- src/test/bench.c | 119 +- src/test/fuzz/fixup_filenames.sh | 6 +- src/test/fuzz/fuzz_consensus.c | 6 +- src/test/fuzz/fuzz_diff.c | 32 +- src/test/fuzz/fuzz_diff_apply.c | 13 +- src/test/fuzz/fuzz_http.c | 2 +- src/test/fuzz/fuzz_http_connect.c | 2 +- src/test/fuzz/fuzz_multi.sh | 6 +- src/test/fuzz/fuzz_socks.c | 2 +- src/test/fuzz/fuzz_strops.c | 253 + src/test/fuzz/fuzz_vrs.c | 24 +- src/test/fuzz/fuzzing.h | 2 +- src/test/fuzz/fuzzing_common.c | 14 +- src/test/fuzz/include.am | 29 + src/test/fuzz/minimize.sh | 2 +- src/test/fuzz_static_testcases.sh | 2 +- src/test/hs_test_helpers.c | 86 +- src/test/include.am | 47 +- src/test/ope_ref.py | 2 +- src/test/prob_distr_mpfr_ref.c | 64 + src/test/ptr_helpers.c | 50 + src/test/ptr_helpers.h | 23 + src/test/rng_test_helpers.c | 259 + src/test/rng_test_helpers.h | 25 + src/test/test-child.c | 61 - src/test/test-memwipe.c | 2 +- src/test/test-network.sh | 48 +- src/test/test-process.c | 85 + src/test/test.c | 57 +- src/test/test.h | 49 +- src/test/test_addr.c | 101 +- src/test/test_address.c | 75 + src/test/test_bt.sh | 2 - src/test/test_bt_cl.c | 10 +- src/test/test_btrack.c | 100 + src/test/test_buffers.c | 2 +- src/test/test_channel.c | 6 +- src/test/test_channelpadding.c | 2 +- src/test/test_channeltls.c | 2 +- src/test/test_circuitbuild.c | 4 +- src/test/test_circuitpadding.c | 3179 ++++++++ src/test/test_circuitstats.c | 16 +- src/test/test_compat_libevent.c | 1 - src/test/test_config.c | 141 +- src/test/test_connection.h | 4 + src/test/test_consdiff.c | 94 +- src/test/test_consdiffmgr.c | 41 +- src/test/test_containers.c | 90 + src/test/test_controller.c | 192 +- src/test/test_controller_events.c | 166 +- src/test/test_crypto.c | 207 +- src/test/test_crypto_rng.c | 332 + src/test/test_crypto_slow.c | 2 +- src/test/test_dir.c | 1459 +++- src/test/test_dir_common.c | 17 +- src/test/test_dir_common.h | 4 + src/test/test_dir_handle_get.c | 124 +- src/test/test_dispatch.c | 278 + src/test/test_dns.c | 66 + src/test/test_dos.c | 2 +- src/test/test_entrynodes.c | 35 +- src/test/test_extorport.c | 33 +- src/test/test_helpers.c | 4 +- src/test/test_hs.c | 16 +- src/test/test_hs_cache.c | 7 +- src/test/test_hs_cell.c | 4 +- src/test/test_hs_client.c | 41 +- src/test/test_hs_common.c | 8 +- src/test/test_hs_control.c | 7 +- src/test/test_hs_descriptor.c | 132 +- src/test/test_hs_intropoint.c | 4 +- src/test/test_hs_service.c | 139 +- src/test/test_key_expiration.sh | 14 +- src/test/test_keygen.sh | 46 +- src/test/test_link_handshake.c | 8 +- src/test/test_logging.c | 24 +- src/test/test_mainloop.c | 229 +- src/test/test_microdesc.c | 41 +- src/test/test_namemap.c | 174 + src/test/test_netinfo.c | 48 + src/test/test_nodelist.c | 416 +- src/test/test_oom.c | 2 +- src/test/test_options.c | 6 +- src/test/test_parsecommon.c | 594 ++ src/test/test_periodic_event.c | 102 +- src/test/test_policy.c | 285 + src/test/test_prob_distr.c | 1402 ++++ src/test/test_process.c | 669 ++ src/test/test_process_slow.c | 365 + src/test/test_proto_http.c | 2 +- src/test/test_proto_misc.c | 2 +- src/test/test_protover.c | 10 +- src/test/test_pt.c | 125 +- src/test/test_ptr_slow.c | 106 + src/test/test_pubsub_build.c | 621 ++ src/test/test_pubsub_msg.c | 305 + src/test/test_rebind.py | 5 +- src/test/test_rebind.sh | 11 +- src/test/test_relaycell.c | 7 +- src/test/test_relaycrypt.c | 10 +- src/test/test_rng.c | 59 + src/test/test_router.c | 255 + src/test/test_routerkeys.c | 12 +- src/test/test_routerlist.c | 24 +- src/test/test_routerset.c | 8 +- src/test/test_rust.sh | 5 +- src/test/test_sendme.c | 365 + src/test/test_shared_random.c | 378 +- src/test/test_slow.c | 4 +- src/test/test_socks.c | 2 +- src/test/test_status.c | 24 +- src/test/test_switch_id.sh | 4 +- src/test/test_tortls.c | 6 +- src/test/test_tortls.h | 2 +- src/test/test_tortls_openssl.c | 4 +- src/test/test_util.c | 527 +- src/test/test_util_format.c | 10 +- src/test/test_util_slow.c | 396 - src/test/test_voting_flags.c | 191 + src/test/test_workqueue_cancel.sh | 2 +- src/test/test_workqueue_efd.sh | 2 +- src/test/test_workqueue_efd2.sh | 2 +- src/test/test_workqueue_pipe.sh | 2 +- src/test/test_workqueue_pipe2.sh | 2 +- src/test/test_workqueue_socketpair.sh | 2 +- src/test/testing_common.c | 23 +- src/test/testing_rsakeys.c | 3 +- src/test/zero_length_keys.sh | 6 +- src/tools/include.am | 7 +- src/tools/tor-gencert.c | 2 +- src/tools/tor-resolve.c | 394 +- src/trunnel/circpad_negotiation.c | 549 ++ src/trunnel/circpad_negotiation.h | 195 + src/trunnel/circpad_negotiation.trunnel | 44 + src/trunnel/ed25519_cert.trunnel | 6 - src/trunnel/include.am | 14 +- src/trunnel/netinfo.c | 723 ++ src/trunnel/netinfo.h | 226 + src/trunnel/netinfo.trunnel | 24 + src/trunnel/sendme.c | 347 + src/trunnel/sendme.h | 101 + src/trunnel/sendme.trunnel | 19 + src/trunnel/socks5.c | 13 +- src/trunnel/socks5.trunnel | 2 +- src/trunnel/trunnel-local.h | 1 + src/win32/orconfig.h | 2 +- 952 files changed, 58926 insertions(+), 20796 deletions(-) _______________________________________________ tor-commits mailing list tor-commits@lists.torproject.org https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-commits