Commit graph

296 commits

Author SHA1 Message Date
0402442929 Begin work on TSLQueue 2019-10-22 20:24:23 +09:00
0f435613bc Refactor logging
Removed redundant checking of logging type in log_impl* .
2019-10-22 19:27:55 +09:00
b11d87ca12 Rework sendPkts (sending queue)
Changed sendPkts in ConnectionData to std::deque, added a TSQueue
cSendPkts to Context. Queued packets will be moved to corresponding
ConnectionData instances during update, dropping with a warning those
where a connection does not exist.

Minor other fixes.

Some additions to TSQueue.
2019-09-27 20:19:48 +09:00
98e88237ce Implement header verification via libsodium
The original 20 byte header is now verified with public-key-crypto using
libsodium.

Also some fixes where ntohs/htons was not used where it should be.
2019-09-23 20:11:12 +09:00
328d44fbb6 Add support for MINGW compiler 2019-09-21 12:15:49 +09:00
aa7255c2e5 Fixes and improvements
Fix use of accept-connections flag.
Fix use of TSQueue (add top_and_pop_and_rsize fn).
Reduce sleep time of threadedUpdate to 8 ms.
2019-09-20 16:59:16 +09:00
27528bfbc5 Use macro to conditionally log
This should skip evaluating log parameters if the log level is not met.
2019-09-20 14:26:59 +09:00
5a3c7cd9a0 Many fixes, including sending packets with payload
Implemented UDPC_get_received
Added UDPC_get_list_connected and UDPC_free_list_connected.
2019-09-20 14:02:41 +09:00
f6ba9e21b6 Fix parsing of ipv6 link-local address
Add support for numeric id in suffix of ipv6 link-local address.
2019-09-19 14:30:10 +09:00
71f7bc4977 Fix Windows support 2019-09-19 12:23:15 +09:00
0e22357d55 Rename enum types to avoid name conflict 2019-09-19 10:58:19 +09:00
8661af9529 Attempt to make code platform agnostic
Getting scope_id from device name from ipv6 link-local address was
previously using only a unix supported api. Added (untested) code to do
the same for windows machines.
2019-09-19 10:35:22 +09:00
5eb0feb22b Fix atostr 2019-09-18 18:39:35 +09:00
355f3b2bd0 Add support for link-local ipv6 addr 2019-09-18 17:35:14 +09:00
31c40d4739 Fix NetworkTest
Allow setting listen addr to "any".
2019-09-18 13:56:04 +09:00
fefbfc8d70 Fix setting trigger-send flag
Fix trigger-send flag related bug where send time of packets were
inconsistent.
Also fix UDPC_client_initiate_connection not immediately sending connection
packet.
2019-09-18 11:42:16 +09:00
2bc6eeffe9 Impl NetworkTest, fixes and refactoring
Basic connections can now be tested with NetworkTest.
Also includes fixes to UDPC that now create a working connection.

TODO Fix client sending at good rate even in bad rate mode.
2019-09-17 20:33:47 +09:00
a642db53f0 Add support for UDPC_strtoa to accept ipv4 input
UDPC_strtoa can now return an ipv4-mapped ipv6 address given an ipv4
string. Also, added validation of input strings via regex.
2019-09-17 17:17:16 +09:00
17d05b4a19 Use mutex for thread safety 2019-09-16 12:00:25 +09:00
d159bd84b7 Add command parsing for NetworkTest 2019-09-16 11:52:03 +09:00
e320a6343e Impl threaded init/update 2019-09-16 11:40:43 +09:00
255930db9a Replace ipv4 with ipv6
ipv6 also supports sending to ipv4.
2019-09-07 16:36:11 +09:00
38eb06f105 Make atostr more thread safe
atostr now can hold 64 different results, and can be called from
multiple threads. Thus, a returned string buffer is valid until atostr
is called 64 more times.
2019-09-03 16:19:47 +09:00
05cb45ca14 Prevent exceptions being thrown in TSQueue
TSQueue's top() and top_and_pop() now return std::optional<T> instead of
just T.
2019-09-03 15:15:09 +09:00
150deb7e5c Expose ConnectionId to C interface, fixes
Removed UDPC:ConnectionIdentifier from UDPC_Defines.hpp and added
ConnectionId to UDPConnection.h, and replaced/fixed instances of the
older type.
2019-09-03 12:06:46 +09:00
0167c4953b Add top_and_pop fn to TSQueue 2019-08-30 15:55:43 +09:00
ee85ced0e0 Minor fixes 2019-08-30 14:57:24 +09:00
ba5d9178dc Simpifly opaque struct handle to context 2019-08-30 12:11:07 +09:00
e8c07680a6 Remove already resolved TODO comment 2019-08-30 12:04:39 +09:00
fe41bbb764 Use opaque struct as handle in C interface, fix
Fixed log_impl_next.
2019-08-30 12:03:26 +09:00
3a754e97b5 Impl logging, minor fixes/refactorings 2019-08-29 12:56:09 +09:00
6aa2e8aa51 Minor formatting fix 2019-08-29 11:20:36 +09:00
d027b1703a Add client_initiate_connection fn, some fixes 2019-08-29 11:07:24 +09:00
f10521ec52 Impl drop all connections with specific addr
Fix UDPC_drop_connection that didn't fully cleanup connection data.

Added UDPC_drop_connection_addr fn that drops all connections with a
specific addr.
2019-08-28 16:38:14 +09:00
8dba751929 Some fixes
Fix id of sent packet stored in network byte order instead of native
order.

Fix failing to send packet not stopping storing sent packet data.
2019-08-28 15:54:18 +09:00
35bc629b1b Add some Unit Tests for UDPC 2019-08-27 18:03:30 +09:00
8883d84b9b Minor fix 2019-08-27 17:53:18 +09:00
1382cc6b7c Store connections based on both addr and port
Previous implementation only stored based on addr only, preventing
connections from/to the same address but different ports.
2019-08-27 17:00:29 +09:00
57e270eb15 Replace all uses of float with chrono::duration 2019-08-27 16:31:24 +09:00
f5cfbe41d5 Fix warnings, some impl, still WIP 2019-08-27 14:06:27 +09:00
da6d752b55 Set max size for received pkts queue 2019-08-27 13:06:15 +09:00
236b03c9b1 Impl storing received packet 2019-08-27 13:03:38 +09:00
418c088084 Impl check timed-out packets
Still WIP
2019-08-27 12:42:43 +09:00
7482fecb37 More impl: rtt and timepoint per sent pkt 2019-08-22 20:16:07 +09:00
0065928422 More impl, fix move for TSQueue 2019-08-22 16:08:05 +09:00
1e0f631ab2 Some WIP impl of receiving packet handling 2019-08-18 19:14:14 +09:00
bf27c328a6 Impl sending queued packet
TODO receiving packet
2019-08-18 18:34:45 +09:00
29009c2b8c Replace spinlock with mutex/lock_guard in TSQueue 2019-08-18 18:10:11 +09:00
5c4360cabe Some more work on cpp_impl (still WIP) 2019-07-25 20:51:08 +09:00
0bd51418a2 Some work on update impl 2019-07-21 14:29:31 +09:00