aboutsummaryrefslogtreecommitdiff
path: root/src
AgeCommit message (Collapse)Author
2017-09-15sched: Add Schedulers torrc optionDavid Goulet
This option is a list of possible scheduler type tor can use ordered by priority. Its default value is "KIST,KISTLite,Vanilla" which means that KIST will be used first and if unavailable will fallback to KISTLite and so on. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15sched: change most asserts to non-fatal BUGsMatt Traudt
2017-09-15sched: revisist compatibility on non-linux systemsMatt Traudt
Wrap things in HAVE_KIST_SUPPORT until Tor compiles and tests cleanly on my OS X machine.
2017-09-15sched: rename scheduler to the_schedulerMatt Traudt
2017-09-15sched: validate KIST sched optionsMatt Traudt
2017-09-15sched: switch to monotonic time; add/fix comments, style, and logs msgsMatt Traudt
2017-09-15sched: Add sandbox support for KISTDavid Goulet
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15sched: Fallback to naive approach if no runtime KIST supportDavid Goulet
It is possible that tor was compiled with KIST support but the running kernel has no support for it. In that case, fallback to a naive approach and flag that we have no kernel support. At this commit, if the kernel support is disabled, there are no ways to come back from it other than restarting tor with a kernel that supporst KIST. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15sched: Detect KIST support at compile timeDavid Goulet
Add a detection for the KIST scheduler in our build system and set HAVE_KIST_SUPPORT if available. Adapt the should use kist function with this new compile option. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15sched: Implement the KIST schedulerMatt Traudt
Closes #12541 Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15sched: Groundwork before KIST implementationMatt Traudt
- HT_FOREACH_FN defined in an additional place because nickm did that in an old kist prototype - Make channel_more_to_flush mockable for future sched tests - Add empty scheduler_{vanilla,kist}.c files and put in include.am Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-15sched: Remove vanilla sched options that will be going awayMatt Traudt
- massive change to src/tgest/test_options.c since the sched options were added all over the place in it - removing the sched options caused some tests to pass/fail in new ways so I assumed current behavior is correct and made them pass again - ex: "ConnLimit must be greater" lines - ex: "Authoritative directory servers must" line - remove test_options_validate__scheduler in prep for new sched tests Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-07consensus: Add a generic notification function on new consensusMatt Traudt
Some groundwork for the KIST scheduler implementation. Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-07Add a module comment to util_bug.hNick Mathewson
Closes ticket 22824.
2017-09-07Merge branch 'maint-0.3.1'Nick Mathewson
2017-09-07Add a stack trace to the warning at issue with 23105.Nick Mathewson
With luck, this will help us diagnose 23105 and fix it. I also added a stack trace to the warning right before it, since why not.
2017-09-07Merge branch 'bug23361_032_01_squashed2'Nick Mathewson
2017-09-07prop224: Pick rendezvous point of protover HSRend=2David Goulet
Version 3 hidden service needs rendezvous point that have the protocol version HSRend >= 2 else the rendezvous cells are rejected. Fixes #23361 Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-06Better error on failure to load seccomp2 sandboxNick Mathewson
There are two reasons this is likeliest to happen -- no kernel support, and some bug in Tor. We'll ask people to check the former before they report. Closes 23090.
2017-09-06Merge remote-tracking branch 'dgoulet/bug23123_032_01'Nick Mathewson
2017-09-05Make url-canonicalizer canonicalize correctly.Nick Mathewson
2017-09-05Fix an erroneous !Nick Mathewson
2017-09-05Resolve inconsistencies between buf refactor and HTTP connectNick Mathewson
2017-09-05Merge branch 'http_tunnel_squashed'Nick Mathewson
2017-09-05Add a fuzzer for HTTP CONNECTNick Mathewson
2017-09-05Add stream isolation support for HTTP CONNECT tunnelsNick Mathewson
I'm doing this using the Proxy-Authorization: header to support clients that understand it, and with a new tor-specific header that makes more sense for our use.
2017-09-05Add support for HTTP Connect tunnelsNick Mathewson
2017-09-05Export http-command parsing functions.Nick Mathewson
2017-09-05Make preferred_chunk_size nonstatic, and add a prefix to itNick Mathewson
2017-09-05Refactor buffer APIs to put a buf_t first.Nick Mathewson
By convention, a function that frobs a foo_t should be called foo_frob, and it should have a foo_t * as its first argument. But for many of the buf_t functions, the buf_t was the final argument, which is silly.
2017-09-05Repair wide lines from previous commit.Nick Mathewson
2017-09-05Repair buffer API so everything starts with buf_.Nick Mathewson
Our convention is that functions which manipulate a type T should be named T_foo. But the buffer functions were super old, and followed all kinds of conventions. Now they're uniform. Here's the perl I used to do this: \#!/usr/bin/perl -w -i -p s/read_to_buf\(/buf_read_from_socket\(/; s/flush_buf\(/buf_flush_to_socket\(/; s/read_to_buf_tls\(/buf_read_from_tls\(/; s/flush_buf_tls\(/buf_flush_to_tls\(/; s/write_to_buf\(/buf_add\(/; s/write_to_buf_compress\(/buf_add_compress\(/; s/move_buf_to_buf\(/buf_move_to_buf\(/; s/peek_from_buf\(/buf_peek\(/; s/fetch_from_buf\(/buf_get_bytes\(/; s/fetch_from_buf_line\(/buf_get_line\(/; s/fetch_from_buf_line\(/buf_get_line\(/; s/buf_remove_from_front\(/buf_drain\(/; s/peek_buf_startswith\(/buf_peek_startswith\(/; s/assert_buf_ok\(/buf_assert_ok\(/;
2017-09-05Move buffers.c and buffers_tls.c into src/commonNick Mathewson
These are no longer tor-specific, so they can be part of the infrastructure.
2017-09-05Move the tls parts of buffers.c into buffers_tls.cNick Mathewson
2017-09-05Make buffers.c independent of or.hNick Mathewson
Also, put ext_or function in new module; it had accidentally gotten into proto_socks.c
2017-09-05Make buf_pullup() expose the pulled-up data.Nick Mathewson
This lets us drop the testing-only function buf_get_first_chunk_data(), and lets us implement proto_http and proto_socks without looking at buf_t internals.
2017-09-05Replace buf->datalen usage in proto_*.c with buf_datalen() call.Nick Mathewson
This lets us remove BUFFERS_PRIVATE from two of the modules.
2017-09-05Move protocol-specific functions out of buffers.cNick Mathewson
This commit does not change the implementation of any function: it only moves code and adds new includes as necessary. Part of #23149.
2017-09-05Bump to 0.3.1.6-rc-devNick Mathewson
2017-09-05test: Fix memory leak in hs_descriptor/decode_bad_signatureDavid Goulet
Fixes #23319 Cherry-picked from master; bug not in any released Tor.
2017-09-05Bump version to 0.3.1.6-rcNick Mathewson
2017-09-05Merge branch 'bug23331_032_01_squashed'Nick Mathewson
2017-09-05hs: Don't enter the HS v3 subsystem without a live consensusDavid Goulet
The service needs the latest SRV and set of relays for the best accurate hashring to upload its descriptor to so it needs a live consensus thus don't do anything until we have it. Fixes #23331 Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-09-04Merge branch 'maint-0.3.1'Nick Mathewson
2017-09-04Merge branch 'bug22752_031_simple' into maint-0.3.1Nick Mathewson
2017-09-04Merge remote-tracking branch 'dgoulet/bug23366_032_01'Nick Mathewson
2017-09-04Merge remote-tracking branch 'asn/bug23346'Nick Mathewson
2017-09-04Merge remote-tracking branch 'dgoulet/bug23327_032_01'Nick Mathewson
2017-09-04Merge branch 'bug23360_032_01'Nick Mathewson
2017-09-04hs: Remove dead code and uneeded featureDavid Goulet
When merging #20657, somehow hs_service_dir_info_changed() became unused leading to not use the re-upload to HSDir when we were missing information feature. Turns out that it is not possible to pick an HSDir with a missing descriptor because in order to compute the HSDir index, the descriptor is mandatory to have so we can know its position on the hashring. This commit removes that dead feature and fix the hs_service_dir_info_changed() not being used. Signed-off-by: David Goulet <dgoulet@torproject.org>