Nick Mathewson
ab6ddc7a33
practracker: split shutdown code out of main.c
...
This is necessary to get the number of includes in main.c back under
control. (In the future, we could just use the subsystem manager for
this kind of stuff.)
2019-03-25 16:35:34 -04:00
Nick Mathewson
4bdff5e3e9
practracker compliance: split lint_message into more logical parts
2019-03-25 16:35:34 -04:00
Nick Mathewson
d976cda49f
pubsub: add test for items_out in builder_finalize()
2019-03-25 16:35:34 -04:00
Nick Mathewson
3552cd69bd
coverage: Exclude lines in pubsub_pub that can only be reached on bug
2019-03-25 16:35:34 -04:00
Nick Mathewson
2e7f80d5f4
pubsub_check.c: Stop accepting NULL prefix, which we never send.
...
(Our code to handle it was broken, too)
2019-03-25 16:35:34 -04:00
Nick Mathewson
c40bcab85d
dispatch: Test behavior of formatting type with no set fmt function.
2019-03-25 16:35:34 -04:00
Nick Mathewson
f74301f8fd
Unit test for namemap_fmt_name()
2019-03-25 16:35:34 -04:00
Nick Mathewson
9fb511526a
pubsub test: add a test to make sure typefns can't be changed.
2019-03-25 16:35:34 -04:00
Nick Mathewson
beedadbeac
Try a different approach to making publish function seem used.
...
We want the DISPATCH_ADD_PUB() macro to count as making a
DECLARE_PUBLISH() invocation "used", so let's try a new approach
that preserves that idea. The old one apparently did not work for
some versions of osx clang.
2019-03-25 16:35:34 -04:00
Nick Mathewson
94feec59cf
move pubsub_connector_t typedef to pubsub_connect.h
2019-03-25 16:35:34 -04:00
Nick Mathewson
22ad8658cd
Correct doxygen @file directives
2019-03-25 16:35:34 -04:00
Nick Mathewson
3d6bf7b36e
Document several issues found by Taylor
2019-03-25 16:35:34 -04:00
Nick Mathewson
b4f28b9df8
pubsub: install libevent events separately from the_dispatcher.
...
Also, add documentation, and fix a free-on-error bug.
2019-03-25 16:35:34 -04:00
Nick Mathewson
6d1abd37e2
Connect the mainloop pubsub dispatcher on startup; free it on shutdown.
2019-03-25 16:35:33 -04:00
Nick Mathewson
02e0a39d39
Add msgtypes.h include to pubsub_build.h
...
(The header won't compile without it.)
2019-03-25 16:35:33 -04:00
Nick Mathewson
bdeaf7d4b2
Code to manage publish/subscribe setup via subsystem interface.
...
This commit has the necessary logic to run the publish/subscribe
system from the mainloop, and to initialize it on startup and tear
it down later.
2019-03-25 16:35:33 -04:00
Nick Mathewson
24df14eb09
Pubsub: macros for ease-of-use and typesafety.
2019-03-25 16:35:33 -04:00
Nick Mathewson
a7681525ab
Add function to clear publish bindings.
...
When we clean up, we'd like to clear all the bindings that refer to
a dispatch_t, so that they don't have dangling pointers to it.
2019-03-25 16:35:33 -04:00
Nick Mathewson
271a671822
pubsub: relationship checking functionality
...
This code tries to prevent a large number of possible errors by
enforcing different restrictions on the messages that different
modules publish and subscribe to.
Some of these rules are probably too strict, and some too lax: we
should feel free to change them as needed as we move forward and
learn more.
2019-03-25 16:35:33 -04:00
Nick Mathewson
9e60482b80
Pubsub: an OO layer on top of lib/dispatch
...
This "publish/subscribe" layer sits on top of lib/dispatch, and
tries to provide more type-safety and cross-checking for the
lower-level layer.
Even with this commit, we're still not done: more checking will come
in the next commit, and a set of usability/typesafety macros will
come after.
2019-03-25 16:35:33 -04:00
Nick Mathewson
24b945f713
Debug logs to record all messages sent and delivered.
2019-03-25 16:35:33 -04:00
Nick Mathewson
f5683d90be
Add a naming system for IDs in dispatch.
2019-03-25 16:35:33 -04:00
Nick Mathewson
e4d3098d4d
Low-level dispatch module for publish-subscribe mechanism
...
This module implements a way to send messages from one module to
another, with associated data types. It does not yet do anything to
ensure that messages are correct, that types match, or that other
forms of consistency are preserved.
2019-03-25 16:35:33 -04:00
Nick Mathewson
a62ac17198
Add a new inline function to check whether debug logging is on
...
We already do this in our log_debug() macro, but there are times
when we'd like to avoid allocating or precomputing something that we
are only going to log if debugging is on.
2019-03-25 16:35:33 -04:00
Nick Mathewson
253fea84cf
Add a smartlist_grow() function to expand a smartlist
...
Tests included.
2019-03-25 16:35:33 -04:00
Nick Mathewson
56bda7464f
Add a macro for the fairly common "eat next semicolon" syntax trick
...
You use this when you're defining a macro to be used at file scope,
and you want to require a semicolon afterwards.
2019-03-25 16:35:33 -04:00
Nick Mathewson
0944500a8e
Add MESG as a new log domain.
2019-03-25 16:35:33 -04:00
Nick Mathewson
dfd7a7f5b6
Add a type to map names to short identifiers
...
We'll be using this for four kinds of identifier in dispatch.c
2019-03-25 16:35:33 -04:00
Nick Mathewson
9a61d3f5ad
Merge branch 'bug24953_squashed'
2019-01-15 08:25:35 -05:00
rl1987
d47e7863bd
Depending on script mode, either use 'whitelist' or 'fallback list'
2019-01-15 08:25:29 -05:00
rl1987
7fbe7a2563
In updateFallbackDirs.py, say 'fallback list' instead of 'whitelist'
2019-01-15 08:25:29 -05:00
Nick Mathewson
c281e587bb
Merge branch 'ticket28058_squashed'
2019-01-15 08:08:41 -05:00
rl1987
30a925fe96
Add changes file
2019-01-15 08:08:29 -05:00
rl1987
7857455729
Add shellcheck to Travis CI builds
2019-01-15 08:08:29 -05:00
rl1987
136e6e7ceb
Run shellcheck for stuff in scripts/ as part of 'make check'
2019-01-15 08:08:29 -05:00
Nick Mathewson
b169c8c14f
Merge remote-tracking branch 'asn-github/adaptive_padding-final'
2019-01-14 14:48:00 -05:00
Nick Mathewson
691dec5d46
Merge branch 'maint-0.3.5'
2019-01-14 14:02:42 -05:00
rl1987
9d9e71824c
Rework rep_hist_log_link_protocol_counts()
2019-01-14 14:01:55 -05:00
Nick Mathewson
99947c3ce0
Merge remote-tracking branch 'teor/bug29015'
2019-01-14 13:59:07 -05:00
George Kadianakis
b269ab5aae
Remove TODO file.
...
All remaining tasks are now part of #28632 .
2019-01-14 15:07:19 +02:00
Nick Mathewson
cef910642e
Merge branch 'bug28989_squashed'
2019-01-11 18:56:57 -05:00
rl1987
b69d28ae83
Fix a typo
2019-01-11 18:56:48 -05:00
rl1987
1bcececdd8
Fix CID 1442277
2019-01-11 18:56:48 -05:00
Kris Katterjohn
df1a8a657e
Actually close the stdout pipe on error in process_unix_exec
...
When cleaning up after an error in process_unix_exec, the stdin
pipe was being double closed instead of closing both the stdin
and stdout pipes. This occurred in two places.
Signed-off-by: Kris Katterjohn <katterjohn@gmail.com>
2019-01-11 18:55:09 -05:00
Nick Mathewson
d21fa48cac
Merge branch 'maint-0.3.5'
2019-01-11 18:53:24 -05:00
Nick Mathewson
efd765a948
Merge remote-tracking branch 'tor-github/pr/563' into maint-0.3.5
2019-01-11 18:53:18 -05:00
Nick Mathewson
5dd926caa6
Include the beginnings of a FAQ about which timer to use.
2019-01-11 09:08:51 -05:00
George Kadianakis
4dc189a904
Clarify immutability of global padding machine specs.
2019-01-11 14:41:28 +02:00
Taylor R Campbell
9728d3f8ac
Fix wrong bases.
2019-01-11 14:41:28 +02:00
Taylor R Campbell
d82a8a7f9d
Add some more type checking.
...
NOTE: This commit breaks the build, because there was a mistake in an
earlier change of exactly the sort that this is meant to detect! I'm
leaving it broken for illustration.
2019-01-11 14:41:28 +02:00