aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2018-09-25Move key-loading and crosscert-checking out of feature/relayNick Mathewson
This is also used by onion services, so it needs to go in another module.
2018-09-24Merge branch 'bug26913_033'Nick Mathewson
2018-09-24Fix arm compilation with openssl <1.1Nick Mathewson
Bug 27781; bugfix on 0.3.5.1-alpha.
2018-09-24Merge branch 'ticket26744'Nick Mathewson
2018-09-22Initialize mainloop events earlier, since other stuff may run them.Nick Mathewson
Fixes a stem test failure; bugfix on c7ce6b9821be22e734b79e0. Bug not in any released Tor.
2018-09-21But, actually move systemd_watchdog_timer free into mainloop.cNick Mathewson
2018-09-21Move systemd_watchdog_timer free into mainloop.cNick Mathewson
2018-09-21Missing include in ntmain.cNick Mathewson
2018-09-21Merge remote-tracking branch 'onionk/protover-rust1'Nick Mathewson
2018-09-21move protover_rust.c to core/or/cypherpunks
Missed in 667a6e8fe9b8169e86f3ab889c4ea8af845d6939.
2018-09-21Merge remote-tracking branch 'tor-github/pr/365'Nick Mathewson
2018-09-21Add an include to get --disable-module-dirauth happy againNick Mathewson
2018-09-21Merge remote-tracking branch 'dgoulet/ticket27774_035_03'Nick Mathewson
2018-09-21Split directory.c code into several modulesNick Mathewson
Parts of this C file naturally belong in dircache, dirclient, and dircommon: so, move them there.
2018-09-21Merge remote-tracking branch 'ahf-github/asn/bugs4700_2'Nick Mathewson
2018-09-21Merge branch 'split_mainloop_onion'Nick Mathewson
2018-09-21Merge branch 'maint-0.3.4'Nick Mathewson
2018-09-21Merge branch 'maint-0.3.3' into maint-0.3.4Nick Mathewson
2018-09-21Merge branch 'maint-0.3.2' into maint-0.3.3Nick Mathewson
2018-09-21Merge branch 'maint-0.2.9' into maint-0.3.2maint-0.3.2Nick Mathewson
2018-09-21Merge remote-tracking branch 'dgoulet/ticket27797_035_01'Nick Mathewson
2018-09-21Split main.c into main.c and mainloop.cNick Mathewson
The main.c code is responsible for initialization and shutdown; the mainloop.c code is responsible for running the main loop of Tor. Splitting the "generic event loop" part of mainloop.c from the event-loop-specific part is not done as part of this patch.
2018-09-21Move the non-crypto parts of onion.c out of src/core/cryptoNick Mathewson
The parts for handling cell formats should be in src/core/or. The parts for handling onionskin queues should be in src/core/or. Only the crypto wrapper belongs in src/core/crypto.
2018-09-21Bump to 0.3.5.2-alpha-devNick Mathewson
2018-09-21hs-v3: Don't BUG() if the RP node_t is invalid client sideDavid Goulet
When sending the INTRODUCE1 cell, we acquire the needed data for the cell but if the RP node_t has invalid data, we'll fail the send and completely kill the SOCKS connection. Instead, close the rendezvous circuit and return a transient error meaning that Tor can recover by selecting a new rendezvous point. We'll also do the same when we are unable to encode the INTRODUCE1 cell for which at that point, we'll simply take another shot at a new rendezvous point. Fixes #27774 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-21Put dirlist_free_all back in routerlist_free_all for unit testsNick Mathewson
2018-09-21Check Python version in test_rebind.pyrl1987
2018-09-21Remove misleading first line in test_rebind.pyrl1987
test_rebind.py actually does not require Python 3. Bugfix on 5a11670fcaad0a58de48425ba80510effbe35628; bug not in any Tor release.
2018-09-20Bump to 0.3.5.2-alphaNick Mathewson
2018-09-20Merge remote-tracking branch 'dgoulet/ticket27410_035_01'Nick Mathewson
2018-09-20Merge remote-tracking branch 'dgoulet/ticket27410_032_01'Nick Mathewson
2018-09-20Support 'none' in torrc for HiddenServiceExportCircuitID.Alexander Færøy
See: https://bugs.torproject.org/4700
2018-09-20Merge branch 'bug23512-v4-029-fixes'Nick Mathewson
2018-09-20Remove another needless typedefNick Mathewson
2018-09-20Merge branch 'bug23512-v4-029-fixes'Nick Mathewson
2018-09-20Fix a pair of errors in bug23512Nick Mathewson
2018-09-20Fix an NSS socket leak-on-error found by dgouletNick Mathewson
2018-09-20Use the correct macro to detect an invalid socket in tortls_nss.cNick Mathewson
Fixes bug 27782; bugfix on 0.3.5.1-alpha
2018-09-20Release ownership of the dummy socket that tortls_nss.c will closeNick Mathewson
Related to #27795 -- since NSS will close the socket, we must not count it as owned by Tor.
2018-09-20Fix socket accounting with ORConn sockets.Nick Mathewson
When we close a socket via tor_tls_free(), we previously had no way for our socket accounting logic to learn about it. This meant that the socket accounting code would think we had run out of sockets, and freak out. Fixes bug 27795; bugfix on 0.3.5.1-alpha.
2018-09-20Add a tor_release_socket_ownership() function.Nick Mathewson
2018-09-20Merge branch 'split_routerlist_dirserv_v2'Nick Mathewson
2018-09-20Split most of dirserv.c into several new modulesNick Mathewson
In dirauth: * bwauth.c reads and uses bandwidth files * guardfraction.c reads and uses the guardfraction file * reachability.c tests relay reachability * recommend_pkg.c handles the recommended-packages lines. * recv_descs.c handles fingerprint files and processing incoming routerinfos that relays upload to us * voteflag.c computes flag thresholds and sets those thresholds on routerstatuses when computing votes In control: * fmt_serverstatus.c generates the ancient "v1 server status" format that controllers expect. In nodelist: * routerstatus_fmt.c formats routerstatus entries for a consensus, a vote, or for the controller.
2018-09-20hs-v3: Close all SOCKS request on descriptor failureDavid Goulet
Client side, when a descriptor is finally fetched and stored in the cache, we then go over all pending SOCKS request for that descriptor. If it turns out that the intro points are unusable, we close the first SOCKS request but not the others for the same .onion. This commit makes it that we'll close all SOCKS requests so we don't let hanging the other ones. It also fixes another bug which is having a SOCKS connection in RENDDESC_WAIT state but with a descriptor in the cache. At some point, tor will expire the intro failure cache which will make that descriptor usable again. When retrying all SOCKS connection (retry_all_socks_conn_waiting_for_desc()), we won't end up in the code path where we have already the descriptor for a pending request causing a BUG(). Bottom line is that we should never have pending requests (waiting for a descriptor) with that descriptor in the cache (even if unusable). Fixees #27410. Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-20Merge branch 'maint-0.3.4'Nick Mathewson
2018-09-20Merge remote-tracking branch 'github/bug27139_034' into maint-0.3.4Nick Mathewson
2018-09-20node: Make node_supports_v3_rendezvous_point() also check for the keyDavid Goulet
It is not enough to look at protover for v3 rendezvous support but also we need to make sure that the curve25519 onion key is present or in other words that the descriptor has been fetched and does contain it. Fixes #27797. Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-19Split routerlist.c into 4 separate modulesNick Mathewson
There are now separate modules for: * the list of router descriptors * the list of authorities and fallbacks * managing authority certificates * selecting random nodes
2018-09-19test: hs-v3 desc has arrived unit testDavid Goulet
That unit test makes sure we don't have pending SOCK request if the descriptor turns out to be unusable. Part of #27410. Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-19hs-v3: Close all SOCKS request on descriptor failureDavid Goulet
Client side, when a descriptor is finally fetched and stored in the cache, we then go over all pending SOCKS request for that descriptor. If it turns out that the intro points are unusable, we close the first SOCKS request but not the others for the same .onion. This commit makes it that we'll close all SOCKS requests so we don't let hanging the other ones. It also fixes another bug which is having a SOCKS connection in RENDDESC_WAIT state but with a descriptor in the cache. At some point, tor will expire the intro failure cache which will make that descriptor usable again. When retrying all SOCKS connection (retry_all_socks_conn_waiting_for_desc()), we won't end up in the code path where we have already the descriptor for a pending request causing a BUG(). Bottom line is that we should never have pending requests (waiting for a descriptor) with that descriptor in the cache (even if unusable). Fixees #27410. Signed-off-by: David Goulet <dgoulet@torproject.org>