Chelsea Holland Komlo
6be75bd61d
cargo fmt; fix line length warnings
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
90daad999e
remove experimental rust features
...
allow unsafe on function that calls C
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
7999d0bf6b
update tor_allocate and add tests
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
7d126b9db9
remove unused include.am for rust modules
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
cd2a036959
refactor smartlist for readability
...
limit scoping of unsafe, and other cleanup
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
91bca5c31b
move to allocating c strings from rust
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
76bbdfbfa9
add tor allocator for rust
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
d14a83f74f
remove unneeded dependencies, remove types where unnecessary
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
0c4d535972
refactor build infrastructure for single rust binary
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
be583a34a3
use tor allocator for string allocation in rust
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
0c04b54d4d
minimize scope for unsafe
...
update documentation
missing check for null
2017-10-27 10:02:08 -04:00
Chelsea Holland Komlo
d1820c1516
rust implementation of protover
2017-10-27 10:02:08 -04:00
Nick Mathewson
fb88527195
update to 0.3.2.3-alpha
2017-10-27 08:59:07 -04:00
Nick Mathewson
a0f8c01004
Merge branch 'maint-0.3.2'
2017-10-27 08:05:04 -04:00
David Goulet
e598c6f6de
hs-v3: Check the ed25519 key when picking intro point
...
If the intro point supports ed25519 link authentication, make sure we don't
have a zeroed key which would lead to a failure to extend to it.
We already check for an empty key if the intro point does not support it so
this makes the check on the key more consistent and symmetric.
Fixes #24002
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-10-26 14:54:20 -04:00
Nick Mathewson
4af1653e0f
Merge branch 'maint-0.3.2'
2017-10-26 10:43:05 -04:00
David Goulet
c4ef21ff5e
fuzzing: Make hsdescv3 use the decoding API correctly
...
Fixes #21509
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-10-26 09:52:15 -04:00
David Goulet
4d2de821ce
Revert "Temporarily disable compilation of the v3 hs fuzzing code"
...
This reverts commit 5ef656e7d1
.
2017-10-26 09:41:47 -04:00
George Kadianakis
42a47c0e7d
Remove a duplicate call to update_microdesc_downloads()
...
This call happens before we update our entry guards, so it needs to be
removed for the fix to #23862 to work.
2017-10-26 13:36:04 +03:00
George Kadianakis
cbc70437a7
Update entry guard state whenever we download a consensus.
...
Update guard state even if we don't have enough dirinfo since that
actually affects the future download of dirinfos.
Fixes #23862 on 0.3.0.1-alpha
2017-10-26 13:36:04 +03:00
George Kadianakis
1a6814c096
Fix offending unittest and add changes file for #23862 .
2017-10-25 20:22:52 +03:00
George Kadianakis
dfd3ed5bdc
Remove a duplicate call to update_microdesc_downloads()
...
This call happens before we update our entry guards, so it needs to be
removed for the fix to #23862 to work.
2017-10-25 20:22:52 +03:00
George Kadianakis
10c5eae3fa
Update entry guard state whenever we download a consensus.
...
Update guard state even if we don't have enough dirinfo since that
actually affects the future download of dirinfos.
Fixes #23862 on 0.3.0.1-alpha
2017-10-25 20:22:52 +03:00
George Kadianakis
8c8d3b90f7
Add a unittest that reveals the offending case of #23862 .
2017-10-25 20:22:52 +03:00
Nick Mathewson
c7a1a987d6
Merge branch 'maint-0.3.2'
2017-10-25 12:25:41 -04:00
David Goulet
9592797cf3
hs-v2: Copy needed information between service on prunning
...
Turns out that when reloading a tor configured with hidden service(s), we
weren't copying all the needed information between the old service object to
the new one.
For instance, the desc_is_dirty timestamp wasn't which could lead to the
service uploading its desriptor much later than it would need to.
The replaycache wasn't also moved over and some intro point information as
well.
Fixes #23790
Signed-off-by: David Goulet <dgoulet@torproject.org>
2017-10-25 11:21:28 -04:00
Nick Mathewson
f68c1b1406
bump to 0.3.1.8-dev
2017-10-25 09:28:05 -04:00
Nick Mathewson
4edbbee2fd
bump to 0.3.0.12-dev
2017-10-25 09:27:50 -04:00
Nick Mathewson
46091a88ca
bump to 0.2.9.13-dev
2017-10-25 09:27:23 -04:00
Nick Mathewson
e5c341eb7c
Merge branch 'maint-0.3.2'
2017-10-24 19:43:13 -04:00
Nick Mathewson
3498183807
Turn a comment into a doxygen comment.
...
Crediting this * to teor, in penance for mis-crediting his x removal
to Isis. The balance is restored.
2017-10-24 19:42:18 -04:00
Nick Mathewson
e7126a1030
Merge remote-tracking branch 'catalyst-oniongit/bug20532_031' into maint-0.3.2
2017-10-24 19:41:26 -04:00
Nick Mathewson
8d908b961f
Merge branch 'maint-0.3.2'
2017-10-24 19:37:11 -04:00
Nick Mathewson
8cc57bccfe
Isis has been noticing typos.
2017-10-24 19:37:09 -04:00
Nick Mathewson
b95ef19a77
Merge branch 'feature18329_029_squashed' into maint-0.3.2
2017-10-24 19:35:32 -04:00
Nick Mathewson
594cf92498
Merge branch 'feature18329_029_squashed' into maint-0.3.2
2017-10-24 19:35:28 -04:00
Nick Mathewson
f3af74ccf5
Updates to fix check-spaces/check-changes warnings
2017-10-24 19:35:16 -04:00
Nick Mathewson
44e8aaa9aa
Adjust test to allow hyphens too.
2017-10-24 19:33:38 -04:00
Isis Lovecruft
02cde0d939
test: Add unittest for descriptors with BridgeDistribution option.
2017-10-24 19:26:24 -04:00
Isis Lovecruft
b0e10f23ba
doc: Improve documentation for check_bridge_distribution_setting().
2017-10-24 19:26:24 -04:00
Nick Mathewson
613b18f0af
Always set bridge-distribution-request on bridges' descriptors.
...
Also, warn the user if the BridgeDistribution option is
unrecognized, and reject the value if it is invalid.
2017-10-24 19:26:24 -04:00
Roger Dingledine
ebab521525
Add new BridgeDistribution config option
...
Bridge relays can use it to add a "bridge-distribution-request" line
to their bridge descriptor, which tells BridgeDB how they'd like their
bridge address to be given out.
Implements tickets 18329.
2017-10-24 19:26:24 -04:00
Taylor Yu
9b60acd4d4
Rewrite bridge addresses earlier
...
Call rewrite_node_address_for_bridge() in
launch_direct_bridge_descriptor_fetch() in case there's an existing
node_t for it.
2017-10-24 17:35:17 -05:00
Nick Mathewson
649000662d
Merge remote-tracking branch 'arma/ticket23637'
2017-10-24 12:52:41 -04:00
Nick Mathewson
5325e7ccab
bump version in the other places :/
2017-10-24 09:11:17 -04:00
Nick Mathewson
552b620280
bump version in the other places :/
2017-10-24 09:11:07 -04:00
Nick Mathewson
cbb41ddfef
bump to 0.3.1.8
2017-10-24 09:09:50 -04:00
Nick Mathewson
abbd6a36fc
Merge branch 'maint-0.3.2'
2017-10-24 08:25:29 -04:00
Nick Mathewson
0d4addfc73
Merge branch 'bug23952_032' into maint-0.3.2
2017-10-24 08:24:12 -04:00
Nick Mathewson
f0a6ea0bfd
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-10-23 15:55:48 -04:00
Nick Mathewson
f7707c9031
Merge branch 'maint-0.3.2'
2017-10-23 15:55:48 -04:00
Nick Mathewson
b1d6cf2508
Merge branch 'maint-0.3.1' into maint-0.3.2
2017-10-23 15:55:48 -04:00
Nick Mathewson
9ae4ffc076
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-10-23 15:55:08 -04:00
Nick Mathewson
b1bd1bf19f
Merge remote-tracking branch 'teor/bug23874-029' into maint-0.2.9
2017-10-23 15:53:45 -04:00
Nick Mathewson
48ee85e0c6
Have LOG_PROTOCOL_WARN call its own function
...
Also, make the function that implements LOG_PROTOCOL_WARN use a
cached value of the desired loglevel, rather than calling
get_options().
2017-10-23 12:22:26 -04:00
Nick Mathewson
af33fdd7c1
Remove the length limit from write_http_status_line
...
Fixes bug 23908; bugfix on 0.3.1.6-rc when we made the keypin
failure message really long.
Backport from 0.3.2's 771fb7e7ba
,
where arma said "get rid of the scary 256-byte-buf landmine".
2017-10-23 09:21:22 -04:00
Nick Mathewson
fcd5c3144a
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-10-23 09:11:10 -04:00
Nick Mathewson
eac4c374e4
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-10-23 09:11:10 -04:00
Nick Mathewson
49e8352f16
Merge branch 'maint-0.3.2'
2017-10-23 09:11:10 -04:00
Nick Mathewson
6a7aa47357
Merge branch 'maint-0.3.1' into maint-0.3.2
2017-10-23 09:11:10 -04:00
Nick Mathewson
85115796bb
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-10-23 09:11:10 -04:00
Nick Mathewson
a5f5bda462
Adjust test, now that there are 9 dirauths again
2017-10-23 09:11:07 -04:00
Nick Mathewson
1db5081ba1
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-10-23 09:06:34 -04:00
Nick Mathewson
c93ecb8189
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-10-23 09:06:34 -04:00
Nick Mathewson
d99c6b7252
Merge branch 'maint-0.3.2'
2017-10-23 09:06:34 -04:00
Nick Mathewson
009141c6a8
Merge branch 'maint-0.3.1' into maint-0.3.2
2017-10-23 09:06:34 -04:00
Nick Mathewson
23e3d57e12
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-10-23 09:06:34 -04:00
Nick Mathewson
8cc147aa83
Merge branch 'maint-0.2.5' into maint-0.2.8
2017-10-23 09:04:56 -04:00
David Goulet
15a699462d
dirauth: Add bastet to the default authorities
...
Fixes #23910
Based on a patch by dgoulet; backported to 0.2.5
2017-10-23 09:03:36 -04:00
Nick Mathewson
97046436b2
Merge branch 'maint-0.3.2'
2017-10-23 08:59:12 -04:00
Nick Mathewson
c958fda6e2
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-10-23 08:59:11 -04:00
Nick Mathewson
783e458c07
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-10-23 08:59:11 -04:00
Nick Mathewson
b8dedaee74
Merge branch 'maint-0.3.1' into maint-0.3.2
2017-10-23 08:59:11 -04:00
Nick Mathewson
df57d1e0c0
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-10-23 08:59:11 -04:00
Nick Mathewson
9a1b385462
Merge branch 'maint-0.2.5' into maint-0.2.8
2017-10-23 08:58:28 -04:00
Nick Mathewson
132e2f69b1
Merge branch 'maint-0.2.8' into maint-0.2.9
2017-10-23 08:53:25 -04:00
Nick Mathewson
74e8fd22c9
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-10-23 08:53:25 -04:00
Nick Mathewson
b68de63eb6
Merge branch 'maint-0.3.0' into maint-0.3.1
2017-10-23 08:53:25 -04:00
Nick Mathewson
6f87a85897
Merge remote-tracking branch 'public/bug23690_028' into maint-0.2.8
2017-10-23 08:53:14 -04:00
Nick Mathewson
35574d4a9a
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-10-23 08:47:58 -04:00
Nick Mathewson
fcaf3335b4
Merge remote-tracking branch 'public/bug23081_025' into maint-0.2.9
2017-10-23 08:47:52 -04:00
Nick Mathewson
d29e4c0597
Merge branch 'maint-0.2.9' into maint-0.3.0
2017-10-23 08:46:29 -04:00
Nick Mathewson
68dea082e7
Merge remote-tracking branch 'public/bug22349_029' into maint-0.2.9
2017-10-23 08:46:26 -04:00
Nick Mathewson
a62f59f000
Mark "previously validated foo could not be set" blocks as unreachable.
2017-10-20 19:28:12 -04:00
Nick Mathewson
c4a07b261b
Add unit tests for cases of starting with bogus keygen arguments
...
In particular, this tests that we give an appropriate warning when
we are told to use some keygen argument, but --keygen is not specified.
2017-10-20 19:27:48 -04:00
Nick Mathewson
3c99b810a4
Exit more carefully when options_act() fails.
...
Also, annotate options_act() with places where we should be
pre-validating values.
2017-10-20 11:39:17 -04:00
Nick Mathewson
1df43aff41
Return instead of exiting in options_init_from_torrc()
2017-10-20 11:39:17 -04:00
Nick Mathewson
853e73e815
Return from instead of exit()ing when ed25519 key check fails.
2017-10-20 11:39:17 -04:00
Nick Mathewson
c247a2df6b
On locking failure, return -1 instead of exit()ing.
...
This is safe, since the only caller (options_act) will check the
return value, and propagate failure.
2017-10-20 11:39:17 -04:00
Nick Mathewson
9bafc3b1ef
Replace most bad exits in main.c, hibernate.c
...
This should make most of the reasons that we hibernate cleaner.
2017-10-20 11:39:17 -04:00
Nick Mathewson
c82cc8acb5
Add a failsafe to kill tor if the new exit code doesn't work.
...
It _should_ work, and I don't see a reason that it wouldn't, but
just in case, add a 10 second timer to make tor die with an
assertion failure if it's supposed to exit but it doesn't.
2017-10-20 11:39:17 -04:00
Nick Mathewson
f0c3b62381
Expose a new function to make the event loop exit once and for all.
...
Instead of calling tor_cleanup(), exit(x), we can now call
tor_shutdown_event_loop_and_exit.
2017-10-20 11:39:17 -04:00
Nick Mathewson
78cbced45c
Rename "tell_event_loop_to_finish" to "...run_external_code"
...
This function was never about 'finishing' the event loop, but rather
about making sure that the code outside the event loop would be run
at least once.
2017-10-20 09:59:48 -04:00
Nick Mathewson
35746a9ee7
Comment-only change: annotate exit() calls.
...
Sometimes when we call exit(), it's because the process is
completely hopeless: openssl has a broken AES-CTR implementation, or
the clock is in the 1960s, or something like that.
But sometimes, we should return cleanly from tor_main() instead, so
that embedders can keep embedding us and start another Tor process.
I've gone through all the exit() and _exit() calls to annotate them
with "exit ok" or "XXXX bad exit" -- the next step will be to fix
the bad exit()s.
First step towards 23848.
2017-10-19 13:42:28 -04:00
Nick Mathewson
0956242158
Mark some unreachable code in compat_winthreads.c as unreachable
2017-10-19 13:21:48 -04:00
Nick Mathewson
72b5e4a2db
Move tor_git_revision into a new module.
...
At first, we put the tor_git_revision constant in tor_main.c, so
that we wouldn't have to recompile config.o every time the git
revision changed. But putting it there had unintended side effect
of forcing every program that wanted to link libor.a (including
test, test-slow, the fuzzers, the benchmarks, etc) to declare their
own tor_git_revision instance.
That's not very nice, especially since we want to start supporting
others who want to link against Tor (see 23846).
So, create a new git_revision.c file that only contains this
constant, and remove the duplicated boilerplate from everywhere
else.
Part of implementing ticket 23845.
2017-10-18 13:49:35 -04:00
Nick Mathewson
f1bf9bf819
Add __OwningControllerFD to allow controllers without controlports
...
This feature should help programs that want to launch and manage a
Tor process, as well as programs that want to launch and manage a
Tor instance in a separate thread. Right now, they have to open a
controlport, and then connect to it, with attendant authentication
issues. This feature allows them to just start with an
authenticated connection.
Bug 23900.
2017-10-18 13:36:53 -04:00
Nick Mathewson
f0daaf8d60
Expose connection_init_accepted_conn.
2017-10-18 12:55:09 -04:00
Nick Mathewson
4eb5753bd2
New function for Tor to treat itself as the "owner" of a socket
...
Our socket accounting functions assumed that we'd never be asked to
close a socket that we didn't open ourselves. But now we want to
support taking control sockets that we inherit -- so we need a way
of taking ownership of them, so we don't freak out later on when we
close them.
2017-10-18 12:17:44 -04:00
Nick Mathewson
5bcd8dc5c4
Make the mark_socket_open() no-op treat the socket as used.
...
This is preliminary for extracting the "take socket ownership" code
into its own function.
2017-10-18 12:13:26 -04:00