summaryrefslogtreecommitdiff
path: root/src/or
AgeCommit message (Collapse)Author
2017-03-31Isolate dmalloc/openssl bridge code to crypto.cNick Mathewson
This makes it so main.c, and the rest of src/or, no longer need to include any openssl headers.
2017-03-29Fix another 32-bit warning in the spooling codeNick Mathewson
2017-03-28Fix i386 compilation from spooling patch. I seem to be good at breaking that.Nick Mathewson
2017-03-28Merge branch 'spooling_squashed'Nick Mathewson
2017-03-28Add nonfatal asserts for return val of dirserv_flushed_someNick Mathewson
2017-03-28Improve documentation for connection_dirserv_flushed_some.Nick Mathewson
2017-03-28Refactor the directory spool implementationNick Mathewson
The old implementation had duplicated code in a bunch of places, and it interspersed spool-management with resource management. The new implementation should make it easier to add new resource types and maintain the spooling code. Closing ticket 21651.
2017-03-27Merge remote-tracking branch 'origin/maint-0.3.0'Nick Mathewson
2017-03-27Fix max sampled size logic when in bridge mode.George Kadianakis
When calculating max sampled size, Tor would only count the number of bridges in torrc, without considering that our state file might already have sampled bridges in it. This caused problems when people swap bridges, since the following error would trigger: [warn] Not expanding the guard sample any further; just hit the maximum sample threshold of 1
2017-03-20Fix very small memory leak #21788Daniel Pinto
Leak caused by clean_up_backtrace_handler not being called on shutdown.
2017-03-17Merge branch 'ahf_bugs_21641_squashed'Nick Mathewson
2017-03-17Check onion key consensus parameters every hour.Alexander Færøy
This patch changes the way we decide when to check for whether it's time to rotate and/or expiry our onion keys. Due to proposal #274 we can now have the keys rotate at different frequencies than before and we thus do the check once an hour when our Tor daemon is running in server mode. This should allow us to quickly notice if the network consensus parameter have changed while we are running instead of having to wait until the current parameters timeout value have passed. See: See: https://bugs.torproject.org/21641
2017-03-17Add periodic timer for expiring old onion keys.Alexander Færøy
This patch adds a new timer that is executed when it is time to expire our current set of old onion keys. Because of proposal #274 this can no longer be assumed to be at the same time we rotate our onion keys since they will be updated less frequently. See: https://bugs.torproject.org/21641
2017-03-17Add API to query the current onion key grace period.Alexander Færøy
This patch adds an API to get the current grace period, in days, defined as the consensus parameter "onion-key-grace-period-days". As per proposal #274 the values for "onion-key-grace-period-days" is a default value of 7 days, a minimum value of 1 day, and a maximum value defined by other consensus parameter "onion-key-rotation-days" also defined in days. See: https://bugs.torproject.org/21641
2017-03-17Make MIN_ONION_KEY_LIFETIME a consensus parameter defined value.Alexander Færøy
This patch turns `MIN_ONION_KEY_LIFETIME` into a new function `get_onion_key_lifetime()` which gets its value from a network consensus parameter named "onion-key-rotation-days". This allows us to tune the value at a later point in time with no code modifications. We also bump the default onion key lifetime from 7 to 28 days as per proposal #274. See: https://bugs.torproject.org/21641
2017-03-16consdiff: Fix 32-bit compilation.Nick Mathewson
Thanks, jenkins!
2017-03-16Merge branch 'prop140_21643_diff_only_squashed'Nick Mathewson
2017-03-16Switch ed-command parsing to use tor_parse_long.Nick Mathewson
2017-03-16Consdiff: extract router ID hash iteration functionsNick Mathewson
There was a frequent block of code that did "find the next router line, see if we've hit the end of the list, get the ID hash from the line, and enforce well-ordering." Per Ahf's review, I'm extracting it to its own function.
2017-03-16Make CONSENSUS_LINE_MAX_LEN a real defineNick Mathewson
2017-03-16Remove a couple of {\n\n instancesNick Mathewson
2017-03-16Use a better for X outside of base64_compare_table.Nick Mathewson
2017-03-16Reindent a few labels.Nick Mathewson
2017-03-16Avoid all needless memory copies when computing consensus diffs.Nick Mathewson
Previously, we operated on smartlists of NUL-terminated strings, which required us to copy both inputs to produce the NUL-terminated strings. Then we copied parts of _those_ inputs to produce an output smartlist of NUL-terminated strings. And finally, we concatenated everything into a final resulting string. This implementation, instead, uses a pointer-and-extent pattern to represent each line as a pointer into the original inputs and a length. These line objects are then added by reference into the output. No actual bytes are copied from the original strings until we finally concatenate the final result together. Bookkeeping structures and newly allocated strings (like ed commands) are allocated inside a memarea, to avoid needless mallocs or complicated should-I-free-this-or-not bookkeeping. In my measurements, this improves CPU performance by something like 18%. The memory savings should be much, much higher.
2017-03-16Swap memory allocation strategy for lists of lines for diffsNick Mathewson
Now we use a single allocation block for all the lines, rather than calling strdup on them one at a time. This should help performance a tiny bit.
2017-03-16Fill in the missing documentation on the new functionsNick Mathewson
2017-03-16Prop140: Fix a crash bug.Nick Mathewson
Found while fuzzing: this could occur if we tried to copy a nonexistent "line 0" while applying a diff.
2017-03-16Make consensus diff sha3 operations mockable.Nick Mathewson
(We'll want this for fuzzing)
2017-03-16String-based API for consensus diffs.Nick Mathewson
Also, add very strict split/join functions, and totally forbid nonempty files that end with somethig besides a newline. This change is necessary to ensure that diff/apply are actually reliable inverse operations.
2017-03-16Fix an abstraction violation.Nick Mathewson
Don't alias the insides of smartlist_t; that way lies madness.
2017-03-16Use "const" in consdiff.[ch]Nick Mathewson
2017-03-16prop140: Use sha3-256, not sha2-256Nick Mathewson
This is a protocol update from recent prop140 changes. Also, per #21673, we need to check the entire document, including signatures.
2017-03-16Fix an unreachable memory leak.Nick Mathewson
Also add a missing newline.
2017-03-16Remove digest[12]_hexNick Mathewson
2017-03-16Tweak&test log messages on apply_diffNick Mathewson
2017-03-16Fixes when applying diffs: Allow 2-line diffs, fix bogus freeNick Mathewson
The 2-line diff changs is needed to make the unit tests actually test the cases that they thought they were testing. The bogus free was found while testing those cases
2017-03-16Mark some warnings as bugs, and as (hopefully) unreachable.Nick Mathewson
2017-03-16Fix some logging on failed apply_ed_diffNick Mathewson
2017-03-16No need to end a log message with newline.Nick Mathewson
2017-03-16Use "STATIC" to export consdiff fns for testingNick Mathewson
Previously test_consdiff.c just did #include "consdiff.c", which is not great style, and messes up coverage testing.
2017-03-16Consensus diff backend from Daniel Martí GSOC project.Daniel Martí
(This commit was extracted by nickm based on the final outcome of the project, taking only the changes in the files touched by this commit from the consdiff_rebased branch. The directory-system changes are going to get worked on separately.)
2017-03-15Run the copyright update script.Nick Mathewson
2017-03-15Merge branch 'maint-0.3.0'Nick Mathewson
2017-03-15Merge branch 'bug20059_024_v2' into maint-0.3.0Nick Mathewson
2017-03-15Avoid a double-mark bug when makring a pending circuit as "too old"Nick Mathewson
Fixes bug 20059; bugfix on 0.1.0.1-rc.
2017-03-15Merge branch 'deprecate_getinfo_network_status'Nick Mathewson
2017-03-15Merge remote-tracking branch 'public/feature21496'Nick Mathewson
2017-03-14Log info about intro point limits when they are reached and resetteor
Depends on 21594, part of 21622.
2017-03-14Log more info when a service descriptor has the wrong number of intro pointsteor
Depends on 21598, part of 21622.
2017-03-14Create function to log service introduction point creation limitsteor
Depends on 21594, part of 21622. (Resolved merge conflict in static function declarations.