summaryrefslogtreecommitdiff
path: root/toxcore
AgeCommit message (Collapse)Author
2020-04-16Remove tokstyle exemptions from build files.iphydf
We put some tokstyle exemptions into the source files themselves, instead. This way we can check some of the code in those files, and more in the future when tokstyle supports more constructs (like apidsl). Also: hacked ping_array.api.h to not emit `_array` as parameter names. We'll need to fix apidsl to do this better. This works for now.
2020-04-13Fix things not being initialized if creating a TCP-only networkRobin Linden
2020-04-09Stop using the "inline namespace" feature of apidsl.iphydf
This adds complexity for very little value.
2020-04-07Remove newlines from the end of LOGGER format strings.iphydf
See https://github.com/TokTok/hs-tokstyle/pull/49 for the corresponding tokstyle analysis.
2020-04-04Migrate format-source script to new apidsl web app.iphydf
This one is unfortunately a little more complicated to use. I may add a simpler API later, but for now, it's JSON-based (because I couldn't get binary data to work without it getting mangled somewhere along the way - JSON is at least text-transport-safe).
2020-03-22Release 0.2.11Robin Linden
2020-03-22Minor cleanups in network code.iphydf
Remove useless parameter, replace with assert (just to be sure). Also replaced some memsets with 0-initialiser and memcpy with assignment.
2020-03-22Minor cleanup: use `assoc_timeout` function where possible.iphydf
This function exists and simplifies some code a little bit. There are lots of places in DHT.c where we have the exact same code, so there is a lot of opportunity to factor out common bits. For now, we just make a minor improvement that's easy to review.
2020-03-22fix typo: now we periodically try to send direct packets when connected by tcpzugz (tox)
2020-03-18clear out old conference connectionszugz (tox)
This may fix problems with very large conferences. Sadly, it seems infeasible to test large conferences on one machine, so this is entirely theoretical.
2020-03-18Add "member" invite responsezugz (tox)
This allows invitations to work in the case that the invitee is already in the group, which can happen if the group becomes split. Such an invitation is automatically accepted, leading to the peers becoming connected in the group and sharing peer lists.
2020-03-18Check that LOGGER macros are only called with string literals.iphydf
Avoid any dynamic format strings, even ones like `cond ? "str1" : "str2"`.
2020-03-15clean groups codezugz (tox)
* make static functions return bool rather than int to indicate success * add peer_in_list() to factor out uniformity over peer and frozen lists * reduce repetition in send_lossy_all_close * rename 'close' to 'connections' * use uint32_t for peernumber (in accord with tox.c) * explain persistence in tox_conference_get_chatlist documentation * clarify "connectedness" in group API documentation * clarify that tox_conference_peer_count counts only online peers * refactor variously
2020-03-14Avoid casting back and forth between void-ptr.iphydf
In windows network code, we implement inet_pton and inet_ntop, which take void pointers. We can do slightly better because we already know the type when we call these functions, so we can avoid casting between void pointer and the addr struct types.
2020-03-14Standardise on having a comma at the end of enums.iphydf
Most of our enums already have one. Some didn't. Tokstyle is going to require commas at the end of enumerator lists in enum definitions.
2020-03-14Fix up comments a bit to start being more uniform.iphydf
Tokstyle (check-cimple) will start enforcing comment formats at some point. It will not support arbitrary stuff in comments, and will parse them. The result can then be semantically analysed.
2020-03-14Use spdx license identifier instead of GPL blurb.iphydf
2020-03-14use -1 rather than ~0 in unsigned integer typeszugz (tox)
Using ~0 involves a bitwise operation on int, so depends on the internal representation of signed integers.
2020-03-12Use rules_cc instead of native cc_library rules.iphydf
2020-03-11Add a mutex lock/unlock inside every public API function.iphydf
2020-03-08Pass packet ID to custom packet handlers.iphydf
We don't expose this to the user code, yet, because it would break the API, but this is useful for future internal code.
2020-03-06Use `net_pack` instead of casting bytes to ints.iphydf
The current code violates the C standard and causes crashes on strict alignment architectures.
2020-03-05Use net_pack/unpack instead of host_to_net.iphydf
The latter is doing pretty much the same thing but in a confusing way (it doesn't change the type of the variable, but does change the semantics).
2020-03-02Add "cimple_test" to the bazel build.iphydf
2020-01-22handle message_number wraparoundzugz (tox)
2020-01-22workaround for message number saving (fixes #961)zugz (tox)
Put a future message number into the save file. Peers require the message numbers of messages we send to increase monotonically. If we save the current message number, then send further messages, then quit without saving (e.g. due to a crash), and then resume from the old save data, then monotonicity will fail. This commit works around this problem by introducing an offset when the current message number, so that even in the above circumstance, as long as fewer messages than the offset were sent between saving and reloading, the sent message numbers will increase monotonically. The choice of offset is a balance between wanting it to be large enough that there is room for plenty of messages to be sent in the above scenario, and wanting to avoid the following potential problem: if we repeatedly save and reload without sending any further messages, then the message number may increase so far that peers will interpret an eventual message as being old. This is not conceivably a practical issue for the 32bit lossless message numbers, but is a concern for the 16bit lossy message numbers.
2020-01-22refactorzugz (tox)
2019-12-25don't wait for connection when killing Toxsudden6
When tox_kill is called no other thread should be running anymore so this locking is not needed there.
2019-12-23fix invalid use of mutexsudden6
- Moving a pthread_mutex in memory (e.g. via realloc()) is undefined behavior. - add a state for allocated but not yet used crypto connections - change crypto_connection_status signature
2019-11-17Fix miscellaneous small problems with groups:zugz (tox)
* unset global status callback in kill_groupchats * avoid dangling friend connections * fix num_introducer_connections leak * stop trying to keep connection alive on freeze * avoid relaying lossless messages back to sender where possible * avoid sending gratuitous online packets
2019-09-18Fix pthread_mutex_destroy getting too many argumentsRobin Lindén
2019-09-09don't update the overflow state in current_time_monotonicsudden6
This could make mono_time loose overflows on Windows.
2019-09-06fix concurrency issues in mono_timesudden6
Since mono_time is accessed from the main thread as well as the toxav thread it is needed to properly lock time updates.
2019-08-04fix overflow in peer nick lensudden6
2019-08-04fix missing group title length checksudden6
This fixes a buffer overflow when a malformed *.tox save file is loaded.
2019-05-30Release 0.2.10Robin Lindén
2019-05-19add configurable limit on number of stored frozen peerszugz (tox)
2019-05-01Do not send the same packet to the same node twice.Evgeny Kurnevsky
2019-02-10Expose api functions for enabling and disabling AV in AV groupszugz (tox)
A group loaded from a savefile starts with AV disabled.
2019-01-21Specify that buffer size for tox_conference_peer_get_name is given by $sizezugz (tox)
2019-01-12Release 0.2.9Robin Lindén
2019-01-12Add some const qualifierszugz (tox)
(Implementing suggestions of sudden6)
2019-01-12Implement all min/max functions for (un)signed int types.iphydf
Also, use them in the `onion_client` module.
2019-01-10Fix misaligned 4-byte access in trace logging.iphydf
This code is undefined behaviour as is, and breaks on various platforms requiring strict alignment (many microcontrollers).
2019-01-07Avoid sending group messages to a peer before we have its group numberzugz (tox)
2019-01-06Improve handling of peers entering and leaving conferenceszugz (tox)
* send freeze packet on quit * delete existing peers with same real_pk on adding a peer * record actual number of conference peers saved
2019-01-05Expose offline conference peers in APIzugz (tox)
2019-01-03Define tox_conference_id_size and tox_conference_uid_sizezugz (tox)
Closes #1264
2019-01-03Fix indices calculation for congestion control.Evgeny Kurnevsky
2019-01-03Added test and patch for VLA stack overflow vuln.zoff99
Also added and used the new crypto_malloc and crypto_free. The latter also zeroes out the memory safely. The former only exists for symmetry (static analysis can detect asymmetric usages).