aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2019-05-02Add comments to include.am files to note where new sources goNick Mathewson
This mechanism isn't perfect, and sometimes it will guess wrong, but it will help our automation.
2019-05-01Merge remote-tracking branch 'tor-github/pr/950'Nick Mathewson
2019-04-30Merge branch 'maint-0.4.0'George Kadianakis
2019-04-30Merge branch 'tor-github/pr/978' into maint-0.4.0George Kadianakis
2019-04-30Merge branch 'tor-github/pr/937'George Kadianakis
2019-04-30Merge branch 'tor-github/pr/936'George Kadianakis
2019-04-30Merge branch 'tor-github/pr/993'George Kadianakis
2019-04-30Merge branch 'tor-github/pr/983'George Kadianakis
2019-04-30Merge branch 'tor-github/pr/980'David Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-04-30Merge branch 'tor-github/pr/909'David Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2019-04-30Rename and clarify some functions for periodic eventsNick Mathewson
When we tell the periodic event manager about an event, we are "registering" that event. The event sits around without being usable, however, until we "connect" the event to libevent. In the end, we "disconnect" the event and remove its libevent parts. Previously, we called these operations "add", "setup", and "destroy", which led to confusion.
2019-04-30Remove now-extraneous calls to initialize_periodic_events().Nick Mathewson
This is now the responsibility of the mainloop's subsystem initializer.
2019-04-30Move dirauth periodic events into dirauth module.Nick Mathewson
Closes ticket 30294.
2019-04-30Turn 'mainloop' into a subsystem.Nick Mathewson
We need a little refactoring for this to work, since the initialization code for the periodic events assumes that libevent is already initialized, which it can't be until it's configured. This change, combined with the previous ones, lets other subsystems declare their own periodic events, without mainloop.c having to know about them. Implements ticket 30293.
2019-04-30Make sure that the rng is not replaced if it is already replaced.Nick Mathewson
2019-04-30Make the deterministic and reproducible rng test code handle fast_rngNick Mathewson
2019-04-30Add improved debugging support to crypto_rand_fast code.Nick Mathewson
2019-04-30Extract add-entropy code from crypto_fast_rng to a new functionNick Mathewson
2019-04-30Use preloaded-rng code in test_hs_descriptor.cNick Mathewson
2019-04-30Make rng mock code also cover strongest_rand.Nick Mathewson
2019-04-30Use prefilled PRNG replacement in test_extorportNick Mathewson
This is the last remaining place where our tests had mocked crypto_rand.
2019-04-30Use prefilled_rng in test_addr.c in place of existing code.Nick Mathewson
2019-04-30Add a testing PRNG replacement that returns canned data.Nick Mathewson
2019-04-30Update circuit_timeout test to use deterministic prngNick Mathewson
2019-04-30Update test_prob_distr to use new reproducible RNG override codeNick Mathewson
2019-04-30Add support for deterministic override of crypto_rand() in testsNick Mathewson
We had this previously, but we did it differently in different places. This implementation is pulled from test_prob_distr.c
2019-04-26Use fast check for missing id in node_is_a_configured_bridge()Nick Mathewson
Fixes bug 30308; bugfix on 0.3.5.1-alpha.
2019-04-26Use a linear algorithm to subtract two nodelists.Nick Mathewson
The nodelist_idx for each node_t serves as a unique identifier for the node, so we can use a bitarray to hold all the excluded nodes, and then remove them from the smartlist. Previously use used smartlist_subtract(sl, excluded), which is O(len(sl)*len(excluded)). We can use this function in other places too, but this is the one that showed up on the profiles of 30291. Closes ticket 30307.
2019-04-26Make nodelist_get_list() return a const pointer.Nick Mathewson
2019-04-25Merge remote-tracking branch 'tor-github/pr/889'Nick Mathewson
2019-04-25Merge remote-tracking branch 'tor-github/pr/922'Nick Mathewson
2019-04-25Extract keyword argument checking from argument parsing.Nick Mathewson
2019-04-25In control command api, rename "object" to "cmddata"Nick Mathewson
This makes it match control-spec.txt.
2019-04-25expand CMD_FL_WIPE to wipe the parsed arguments tooNick Mathewson
2019-04-25Simplify handler logic in control_cmd.cNick Mathewson
Now that the legacy handlers are gone, we can simplify the structures and macros here.
2019-04-25Port the authenticate and authchallenge commands to the new parserNick Mathewson
These two presented their own challenge, because of their use of QString, and their distinguished handling of quoted versus non-quoted values.
2019-04-25Add rudimentary qstring support to kvline.cNick Mathewson
2019-04-25Move and rename decode_escaped_string()Nick Mathewson
This function decodes something different from the usual c-escaped format. It is only used in controller authorization.
2019-04-25Use the new controller command parser for EXTENDCIRCUIT.Nick Mathewson
This command does not fit perfectly with the others, since its second argument is optional and may contain equal signs. Still, it's probably better to squeeze it into the new metaformat, since doing so allows us to remove several pieces of the old command-parsing machinery.
2019-04-25Use new parser logic for SETCONF/RESETCONF code.Nick Mathewson
Here we get to throw away a LOT of unused code, since most of the old parsing was redundant with kvline.
2019-04-25Update more controller commands, now that we have kvline supportNick Mathewson
2019-04-25Add a case-insensitive variant to config_line_find()Nick Mathewson
2019-04-25Add kvline support to controller command parser.Nick Mathewson
This should let us handle all (or nearly all) of the remaining commands.
2019-04-25Allow kvlines in control commands.Nick Mathewson
2019-04-25Add fuzzing support for several more groups of kvlines flagsNick Mathewson
2019-04-25kvline: handle empty alues as well as empty keysNick Mathewson
The two options are mutually exclusive, since otherwise an entry like "Foo" would be ambiguous. We want to have the ability to treat entries like this as keys, though, since some controller commands interpret them as flags.
2019-04-25Use parsing code for the simpler controller commands.Nick Mathewson
(This should be all of the command that work nicely with positional arguments only.) Some of these commands should probably treat extra arguments as incorrect, but for now I'm trying to be careful not to break any existing users.
2019-04-25Unit tests for current control-command parser logicNick Mathewson
2019-04-25When parsing a multiline controller command, be careful with linebreaksNick Mathewson
The first line break in particular was mishandled: it was discarded if no arguments came before it, which made it impossible to distinguish arguments from the first line of the body. To solve this, we need to allocate a copy of the command rather than using NUL to separate it, since we might have "COMMAND\n" as our input. Fixes ticket 29984.
2019-04-25Extract the argument-splitting part of control.c's parserNick Mathewson
This is preliminary work for fixing 29984; no behavior has changed.