Commit Graph

87 Commits

Author SHA1 Message Date
iphydf d539e34f91 chore: Add initial ESP32 docker build.
It won't actually run until we reduce memory consumption by 2 orders of
magnitude, but that'll be the eventual goal.
2022-04-05 20:11:18 +00:00
iphydf 3576df9d79 chore: Add MISRA-2012 check using cppcheck's misra addon.
Disabled a whole bunch of rules from the MISRA-C set. Some of them
should be fixed, but most of the ones we violate have good reasons. This
PR documents those reasons.
2022-04-04 20:29:54 +00:00
iphydf e4d1958ffa refactor: Allow NULL logger; make it no-op in NDEBUG. 2022-04-03 18:29:22 +00:00
zugz (tox) e49a477a84 feat: add forwarding and announce request handling
This is the "server-side" part of the new friend finding system,
allowing DHT nodes to store small amounts of data and permit searching
for it. A forwarding (proxying) mechanism allows this to be used by TCP
clients, and deals with non-transitivity in the network.
2022-04-03 00:00:08 +00:00
iphydf b66f4959e2 chore: Add dependabot config.
To keep the third_party/cmp submodule up-to-date.
2022-04-03 08:45:09 +00:00
iphydf 660e346fce cleanup: Disallow stack frames of over 9000 bytes.
This only happens in tests, which are easy to fix. Inside toxcore we
should actually be more stringent, but for now this helps already.
2022-04-01 13:57:16 +00:00
iphydf 09575dc05b chore: Clone submodules in clusterfuzzlite Dockerfile.
Needed for the build afterwards.

Also added the cflite Dockerfile to automatic CI builds so changes to it
are checked in pull requests.

Also fixed the tokstyle docker image. It needs clang instead of gcc now.
2022-03-30 18:29:46 +00:00
iphydf 2e3819c956 chore: Remove valgrind build.
This is very slow, around 20 minutes, which seriously slows down
velocity for little gain. MSAN runs on unit tests and 1 auto test, so
we'll catch increasingly many valgrind-ish bugs that way in one of the
1-5-minute builds.
2022-03-29 12:53:02 +00:00
iphydf 96ab8918dc cleanup: Use _Static_assert in gcc/clang.
Hopefully they don't throw warnings at us.
2022-03-27 18:18:33 +00:00
iphydf ee154da4a9 refactor: Use cmp instead of msgpack-c for events packing.
This library is better in every way.
2022-03-26 23:57:15 +00:00
iphydf 7dde71c4e9 chore: Use "master" as the branch in toktok-fuzzer.
This is the standard across toktok repos. Exceptions are a pain for
automation and tooling.
2022-03-23 23:03:52 +00:00
jfreegman 26c2bb1061 Merge onion_announce changes from new groupchats fork
These changes will make the DHT compatible with the new groupchat
implementation. Additionally, onion announces now support arbitrary
extra data
2022-03-20 17:33:06 -04:00
iphydf 9df7bf7ccd chore: Add testing/Dockerfile to the CI build. 2022-03-08 20:31:39 +00:00
iphydf e1e92c1ac1 docs: Clean up doxygen comments to be more doxygen-like. 2022-03-05 22:30:48 +00:00
iphydf e855135916 chore: Enable a bunch more warnings in GCC builds.
g++ doesn't emit these warnings properly, so the `run-gcc` tool, which
compiles code as C++, doesn't work for all of these. There are a few
builds that do use GCC, e.g. the sonar-scan build, so these flags will
be passed at some point in CI.
2022-02-28 23:26:35 +00:00
iphydf 093927ba4f test: Add mallocfail and proxy test to our coverage runs. 2022-02-25 01:55:28 +00:00
iphydf 2ce6f5b169 fix: Report failure to DHT bootstrap back to the client.
Also reduce log verbosity a bit.
2022-02-24 11:37:47 +00:00
iphydf b7f95bbe70 cleanup: Remove any disallowed casts.
The ones in toxav weren't needed. The ones in network.c are
non-trivially correct. Now, the code is more easily verifiable.
2022-02-22 02:19:29 +00:00
iphydf a6426d7e7a chore: Make coverity scan a nightly job.
Instead of on every push. It only produces results once a day anyway.
2022-02-19 02:47:36 +00:00
iphydf 68f4e5c0fa chore: Simplify and speed up windows builds using docker image. 2022-02-19 00:47:37 +00:00
iphydf c44930d323 chore: Fix build-args in win32/win64 docker build. 2022-02-19 00:46:34 +00:00
iphydf 570485e186 chore: Add docker image builds for windows cross compiler. 2022-02-19 00:08:33 +00:00
iphydf d46091072d chore: Remove msan from all CIs except circleci.
It doesn't work yet and is wasting CI resources.
2022-02-18 22:21:01 +00:00
iphydf c5e3bca6de chore: Simplify and speed up nacl build using toxchat/nacl. 2022-02-18 22:13:42 +00:00
iphydf 5e724d8909 cleanup: Avoid implicit pointer-to-bool conversion in if in toxav. 2022-02-17 20:33:24 +00:00
iphydf 1d0f6e51e2 cleanup: Add some more error path logging to TCP server code. 2022-02-15 12:08:22 +00:00
sudden6 4d79001991 chore: fine tune fuzzing settings 2022-02-14 13:54:52 +01:00
sudden6 d429d35756 fix: syntax error introduced in 8bf37994fd 2022-02-13 18:36:36 +01:00
sudden6 8bf37994fd chore: add manual trigger to fuzzing builds 2022-02-13 16:01:57 +01:00
sudden6 6400b13754 chore: add continous fuzzing to our CI 2022-02-12 20:19:09 +01:00
Robin Linden dd19856a6c chore: Set up an Android CI job 2022-02-10 23:31:09 +01:00
jfreegman 6dc1656e28 Silence clang compile warnings causing circle-ci/asan to fail 2022-02-10 14:11:58 -05:00
Maxim Biro e58ee06492 Fix Coverty scan 2022-02-10 10:11:22 -05:00
iphydf 5a3a0b6453 cleanup: Add nonnull annotations to function definitions.
These help static analysis and ubsan. We should eventually have all
functions annotated like this with a cimple check to make sure every
pointer has an explicit nullability annotation. The `nullable`
annotation does nothing in GCC, but will be used by cimple to validate
that every parameter has defined nullability.
2022-02-08 17:57:47 +00:00
iphydf 6f36b67a13 chore: Add an undefined behaviour/integer sanitizer build. 2022-02-08 09:18:18 +00:00
iphydf 0a2190f28c feat: Add binary packing functions for tox events. 2022-02-07 02:43:24 +00:00
iphydf de4af4c270 feat: Add async event handling (callbacks) code.
Instead of synchronously handling events as they happen in
`tox_iterate`, this first collects all events in a structure and then
lets the client process them. This allows clients to process events in
parallel, since the data structure returned is mostly immutable.

This also makes toxcore compatible with languages that don't (easily)
support callbacks from C into the non-C language.

If we remove the callbacks, this allows us to add fields to the events
without breaking the API.
2022-02-06 17:28:28 +00:00
iphydf 4d4120214a chore: Add an easy way to run autotools and circleci builds locally. 2022-02-06 15:48:02 +00:00
iphydf d39f803c7e docs: Make crypto_core.h appear on doxygen. 2022-02-05 19:34:13 +00:00
iphydf 1859d0f44a cleanup: Ensure we limit the system headers included in .h files.
Most system headers contain functions (e.g. `memcpy` in `string.h`)
which aren't needed in our own header files. For the most part, our own
headers should only include types needed to declare our own types and
functions. We now enforce this so we think twice about which headers we
really need in the .h files.
2022-02-04 20:54:37 +00:00
iphydf 71965a0f3b feat: Add WASM build for toxcore and websocket bootstrap node.
The websocket bootstrap node will be running on Heroku.
2022-02-02 16:05:25 +00:00
jfreegman 95d0f5ccbe Use latest toktok-stack msan version 2022-01-31 14:32:50 -05:00
iphydf b6f48b3b7d chore: Rename bazel-release to -opt and -debug to -dbg. 2022-01-29 22:21:13 +00:00
iphydf 2b783c4170 chore: Don't run sonar scan on pull requests.
This reverts commit e3d20afc6a.

It doesn't work.
2022-01-29 16:29:50 +00:00
Robin Linden 2cfa872818 Add a Bazel Buildifier CI job 2022-01-28 00:55:07 +01:00
zugz (tox) 1157e4e68c Separate run_auto_tests into a library 2022-01-25 14:25:36 -05:00
jfreegman 10d59d610b Refactor autotest live network bootstrapping
- Use one node list and public bootstrap function for all autotests
- Use ifdefs for testnet/mainnet nodes
- Replace a few broken nodes with working ones
2022-01-22 11:24:28 -05:00
iphydf 7f94e411a9 chore: Add cpplint to the CI. 2022-01-17 23:42:38 +00:00
iphydf e3d20afc6a chore: Run sonar scan on pull requests. 2022-01-17 23:23:14 +00:00
iphydf fdadcb0a90 chore: Add a make_single_file script, used for CI.
This will also be used for static analysers that can't deal with multiple
source files.
2022-01-17 21:12:25 +00:00