Commit Graph

5349 Commits

Author SHA1 Message Date
iphydf
511bfe39c8
cleanup: Use Bazel modules to enforce proper #include hygiene. 2024-01-30 23:51:43 +00:00
iphydf
1710a0d091
refactor: Move pack/unpack IP_Port from DHT into network module.
It's misplaced in DHT, since the data structures are located in network.
2024-01-30 12:40:52 +00:00
iphydf
a975943564
chore: Really fix coverage docker image build.
It made progress, but then the last step failed.
2024-01-30 09:11:44 +00:00
iphydf
c08409390f
chore: Fix post-submit coverage image. 2024-01-29 22:56:31 +00:00
iphydf
39aadf8922
fix: Don't use memcmp to compare IP_Ports.
`memcmp` compares padding bytes as well, which may be arbitrary or
uninitialised.
2024-01-29 13:58:45 +00:00
jfreegman
d94246a906
fix: partially fix a bug that prevented group part messages from
sending.

When a peer leaves a group, they send a packet to the group
indicating that they're leaving. However if this packet is sent
via TCP, it gets put in a packet queue, which is then destroyed
on the rest of the group cleanup process before ever being able
to send.

This pr allows do_gc() to finish an iteration before cleaning the
group up, which allows the TCP packet queue to be emptied. However
this bug still exists on a tox_kill() event because we don't have
a chance to do another do_gc() iteration.
2024-01-27 12:27:27 -05:00
iphydf
eeaa039222
chore: Fix rpm build; add a CI check for it. 2024-01-26 23:38:48 +00:00
iphydf
8328449c1a
chore: Speed up docker builds a bit by reducing layer count.
This is especially noticeable on local builds (less so on the github
workers).
2024-01-26 14:13:34 +00:00
iphydf
d6d67d56f3
cleanup: Add const where possible in auto tests.
Also one in `DHT_bootstrap.c`.
2024-01-25 23:17:32 +00:00
iphydf
6aa9e6850d
cleanup: Minor cleanup of event unpack code. 2024-01-25 21:52:45 +00:00
iphydf
bdf460a3a9
refactor: Rename system_{memory,...} to os_{memory,...}.
This rename happens in the system PR, so I'm pulling it out to reduce
the size of that PR.
2024-01-25 21:33:52 +00:00
jfreegman
203e1af81e
fix: a few off by one errors in group autotests
Since we're nul terminating these buffers they need one extra byte
2024-01-25 11:08:35 -05:00
iphydf
5c093c4888
cleanup: Remove all uses of SIZEOF_VLA.
This is step 1 towards removing VLAs altogether.
2024-01-25 07:40:41 +00:00
iphydf
662c2140f3
test: Add goblint static analyser. 2024-01-24 23:31:00 +00:00
iphydf
8f07755834
cleanup: Use memzero(x, s) instead of memset(x, 0, s).
It's clearer and doesn't risk having a non-zero filler value.
2024-01-24 19:14:32 +00:00
iphydf
a7258e40cf
cleanup: Use explicit 0 instead of PACKET_ID_PADDING.
Calling it a packet ID is a lie, and we'd rather "memzero" than memset
with some named value that happens to be 0.
2024-01-24 12:21:55 +00:00
iphydf
6370d0f15d
cleanup: Expand the Tox_Options accessor macros.
Macros should be avoided as much as possible.
2024-01-24 10:20:48 +00:00
iphydf
14a1a0b9bd
cleanup: Remove plan9 support.
We really don't support it. I tried for half an hour to get some kind of
plan9 cross compilation to work, but it's not working. If anyone wants
to bring it back, they are welcome to send a PR including a CI check for
it. Until then, these 5 lines of unused code are gone.
2024-01-24 10:09:39 +00:00
iphydf
a05dccad13
test: Add a simple new/delete test for Tox.
This can be used for some static analysis that doesn't currently survive
a full iterate loop, but can possibly survive a new+kill.
2024-01-24 08:58:03 +00:00
iphydf
1cdcf938b9
cleanup: Add comment after every #endif.
This makes far-away endifs clearer, so we're applying the rule to all
endifs to be consistent.
2024-01-23 21:52:41 +00:00
iphydf
ba99d4dc4b
test: Fix comment I broke in the events test PR. 2024-01-19 00:04:07 +00:00
Green Sky
e07248debb
refactor: Migrate auto_tests to new events API.
Co-authored-by: Green Sky <green@g-s.xyz>
2024-01-18 18:08:07 +00:00
iphydf
bdd42b5452
refactor: Add common msgpack array packer with callback.
There will be more object arrays that need to be packed. This function
takes care of NULL (creating an empty array), and putting the correct
array size and calling the per-element callback the right amount of
times.
2024-01-18 13:52:35 +00:00
iphydf
3c659f5288
cleanup: Rename group to conference in groupav documentation. 2024-01-18 13:12:32 +00:00
iphydf
89957be230
cleanup: Ensure handler params are named after callback params. 2024-01-18 10:55:31 +00:00
iphydf
c650d9d345
refactor: Pass this pointer as first param to s11n callbacks. 2024-01-17 13:11:14 +00:00
iphydf
e7fb91ddb8
refactor: Allow NULL pointers for byte arrays in events.
Some events, notably the file chunk recv one, can give NULL pointers to
the client. Not sure they should, but that's what happens, so we support
it.
2024-01-17 09:13:07 +00:00
jfreegman
5e2c8cabc1
cleanup: make some improvements to group moderation test
- We no longer assert peer roles in the mod event callback
because this causes an issue with the new events implementation,
which triggers the events after all the packets from the
current tox_iterate() are processed, rather than as the
packets are received. These checks were superfluous and shouldn't
reduce code coverage.
- A moderator now sets the topic before the founder kicks him in
order to increase internal code coverage.
2024-01-16 18:08:11 -05:00
iphydf
259de4867e
cleanup: Remove bin_pack_{new,free}.
We should only ever use `bin_pack_obj` and friends, which stack-allocate
the packer and pass it to callbacks.
2024-01-16 19:18:45 +00:00
jfreegman
21a8ff5895
cleanup: skip a do_gc iteration before removing peers marked for deletion
This fixes an issue with events where we try to make queries on peers
that no longer exist internally
2024-01-16 13:11:52 -05:00
iphydf
16809dc36e
feat: Add dht_get_nodes_response event to the events system.
Should probably rename it to something starting with `debug_` and make
it opt-in. Right now, it absolutely spams the events object.
2024-01-16 10:52:31 +00:00
iphydf
e2c01e457b
refactor: Use enum-specific pack functions for enum values.
It's more obvious this way.
2024-01-15 21:47:13 +00:00
iphydf
afc472402b
refactor: Factor out union pack switch from event packer.
Preparation for it being generated.
2024-01-15 19:21:19 +00:00
iphydf
6caa7ce4b1
cleanup: Move the 2-element array pack out of individual events.
It's common across all events. No need to repeat it.

Co-authored-by: Green Sky <green@g-s.xyz>
2024-01-15 19:04:45 +00:00
iphydf
687af81f20
cleanup: Remove empty test doing nothing.
It's no longer needed since NGC was merged.
2024-01-15 18:29:08 +00:00
iphydf
fcf5882428
test: Add printf log statement to group_moderation_test. 2024-01-15 18:09:38 +00:00
iphydf
b4d8826228
cleanup: Remove old type-ordered event getters.
These are quite expensive, because they go through all events to index
in a typed array that no longer exists. Clients should index in the
union array and find the event they want themselves, or use dispatch.
2024-01-15 17:29:43 +00:00
Green Sky
8c35e0fefb
feat: add ngc events 2024-01-15 16:32:10 +00:00
iphydf
97bdd83937
refactor: Make event dispatch ordered by receive time. 2024-01-15 16:32:10 +00:00
Green Sky
001d00ab30
fix: dont resolve to ipv6 addresses when its disabled 2024-01-15 15:29:01 +01:00
Green Sky
d3b935f63f
fix(test): tests use ipv6 by default, even with USE_IPV6 set to 0 2024-01-15 15:29:01 +01:00
Green Sky
29fc5ea1f7
chore: add clangd files to .gitignore 2024-01-15 12:12:28 +01:00
iphydf
d30c81acbc
refactor: Move file streaming test to its own file.
It can't easily be ported to events.
2024-01-14 23:00:42 +00:00
Green Sky
acdc67387b
fix(ci): window builds now build in parallel
Co-authored-by: Maxim Biro <nurupo.contributions@gmail.com>
2024-01-14 10:01:35 -05:00
iphydf
bcb6592af5
test: Add C++ classes wrapping system interfaces.
These are more convenient and safer than the manual vtables we have in
the fuzzer support code. We can override individual member functions,
and C++ will take care of correctly casting and offsetting this-pointers
when needed.
2024-01-13 16:16:47 +00:00
iphydf
4cea4f9ca4
fix: Make all the fuzzers work again, and add a test for protodump.
fuzz_select_target wasn't selecting anything, so fuzzers using that
function either did nothing or would only ever select one of the
functions.
2024-01-13 15:06:30 +00:00
iphydf
c4e209ea1d
refactor: Factor out malloc+memcpy into memdup.
Only applied in one place, but perhaps later we can implement a pattern
in tokstyle to find more opportunities for using memdup.
2024-01-13 11:57:21 +00:00
jfreegman
87bcc4322d
fix: Remove fatal error for non-erroneous case
We allow non-null data pointers to be passed to functions
alongside 0-length data. For example when creating a data
buffer that has room for the entire packet, including ignored
header data.

This error broke a rare but legitimate case where we miss
packets during a handshake attempt and need to store empty
handshake packets in the packet array.
2024-01-12 20:06:43 -05:00
iphydf
812f931d5f
fix: Make sure there's enough space for CONSUME1 in fuzzers. 2024-01-12 14:52:35 +00:00
iphydf
50f1b30fa9
test: Add fuzz tests to the coverage run.
So we don't need to write so many edge case tests ourselves for things
like parsers, which really don't need those manual tests, as long as we
can check for some properties like "can output the parsed data and it'll
be the same as the input".
2024-01-12 12:33:41 +00:00