aboutsummaryrefslogtreecommitdiff
path: root/src/feature
AgeCommit message (Collapse)Author
2018-09-27Mark a variable static.Nick Mathewson
2018-09-27Extract the non-stats part of geoip into a new src/lib/geoip.Nick Mathewson
2018-09-27Remove excess dependencies from geoip.cNick Mathewson
2018-09-27Split geoip from geoip-related stats.Nick Mathewson
This commit just moves the code to two separate files. The geoip code still has a few needless dependencies on core/* and features/*.
2018-09-27Move the n_v3_ns_requests field out of geoip_country_tNick Mathewson
This is preparation for splitting geoip.c into stats and non-stats portions.
2018-09-27Move the predicted ports code out of rephist.cNick Mathewson
It differs from the rest of the rephist code in that it's actually necessary for Tor to operate, so it should probably go somewhere else. I'm not sure where yet, so I'll leave it in the same directory, but give it its own file.
2018-09-26Merge branch 'router_split'Nick Mathewson
2018-09-26Merge remote-tracking branch 'dgoulet/bug27550_035_01'Nick Mathewson
2018-09-25Remove extra includes from router.cNick Mathewson
2018-09-25Revise things that had included router.h beforeNick Mathewson
Make them only include the headers that they needed, and sort their headers while we're at it.
2018-09-25Move the "is the network disabled?" functions out of router.cNick Mathewson
Since this is completely core functionality, I'm putting it in core/mainloop, even though it depends on feature/hibernate. We'll have to sort that out in the future.
2018-09-25Move routerinfo_t functions out of router.cNick Mathewson
(It turns out that some of the functions in router.h didn't even exist any more, so I just got to delete their declarations completely.)
2018-09-25Extract nickname-checking functions from router.cNick Mathewson
2018-09-25Move the various _describe() functions out of router.cNick Mathewson
Note that I haven't separated the headers yet (there's still an
2018-09-25Extract all the "am I a server" functions from router.cNick Mathewson
2018-09-25Move all authdir_mode_*() functions into authmode.hNick Mathewson
2018-09-25Rename dirauth/mode.h to dirauth/authmode.hNick Mathewson
This is preparation for having a routermode.h as well
2018-09-25Move self-test functionality into its own file.Nick Mathewson
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 'ticket26744'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 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-21fixup! hs-v3: Silence some logging for client authorizationDavid Goulet
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-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-20Merge branch 'bug23512-v4-029-fixes'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-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>
2018-09-18Merge branch 'bug23512-v4-033' into bug23512-v4-masterMike Perry
2018-09-15Change HiddenServiceExportCircuitID to take a string parameter: the protocol.Alexander Færøy
This patch changes HiddenServiceExportCircuitID so instead of being a boolean it takes a string, which is the protocol. Currently only the 'haproxy' protocol is defined. See: https://bugs.torproject.org/4700
2018-09-15Save original virtual port in edge conn HS ident.George Kadianakis
2018-09-15Introduce per-service HiddenServiceExportCircuitID torrc option.George Kadianakis
Moves code to a function, better viewed with --color-moved.
2018-09-14Merge branch 'maint-0.3.4'Nick Mathewson
2018-09-14hs-v2: Demote log warning to info when we don't have a consensusDavid Goulet
Fixes #27040 Signed-off-by: David Goulet <dgoulet@torproject.org>
2018-09-14Merge remote-tracking branch 'tor-github/pr/329'Nick Mathewson
2018-09-14Merge branch 'ticket27247'Nick Mathewson
2018-09-14Re-order includes to expose intptr_t to tor_api_internal.hNick Mathewson