4d68715efb
Add more documentation, some fixes
2020-01-08 20:50:56 +09:00
4c48dbb0cf
Replace TSLQueue with std::deque where possible
...
Also added std::mutex for each new std::deque. cSendPkts is left as a
TSLQueue because it needs to support fast removal from the middle of the
data structure (mainly because the queued packets per ConnectionData has
an imposed limit of packets to hold).
2020-01-08 19:55:12 +09:00
e66e6c7b74
Minor fix to keysSet atomic_bool
2020-01-05 16:05:22 +09:00
e644cd86b1
Minor fixes
2020-01-05 15:39:25 +09:00
88ba670ce9
Fix usage of atomic_bool "keysSet"
2020-01-05 15:31:37 +09:00
1ecf9bff4f
Minor refactoring/fix of use of atomic_bool
2020-01-05 15:12:13 +09:00
5c8480e5bc
Refactor locking mutex during update
2020-01-05 15:05:23 +09:00
7996bd5c36
Client on connect fail now returns FAIL_CONNECT
...
Previously, returned event was DISCONNECT. FAIL_CONNECT is a new event
enum value.
2020-01-05 14:49:37 +09:00
3ade637205
Client now regenerates verif-time on con attempt
2020-01-05 14:42:57 +09:00
42fde9a2d0
Implement publickey whitelist (using libsodium)
...
Renamed "mutex" to "conMapMutex" since it is mainly used to lock access
to the connection map.
Removed UDPC_client_initiate_connection_pk() as publickey whitelisting
replaces its functionality.
2020-01-02 20:54:32 +09:00
26e8b95d94
Add verification of verification time server-side
...
Verification string is no longer a string but seconds since epoch.
2020-01-02 16:33:17 +09:00
db2c3fed97
Change: libsodium verification now on full packet
2020-01-02 13:12:40 +09:00
89bdc7e9ca
Fix copying over data of received packet
2019-12-30 14:16:05 +09:00
1a39039065
Fix received packet storing unnecessary header
...
Added rtt (uint16_t) to UDPC_PacketInfo.
2019-12-27 13:35:28 +09:00
fdd57bc538
Minor additions/fixes to doxygen-style docs
2019-12-22 22:50:50 +09:00
1af44db109
Minor refactorings
...
UDPC_update now locks the mutex to keep it thread-safe.
2019-12-19 11:39:34 +09:00
ffcc30bc64
Minor fixes
2019-12-18 14:34:53 +09:00
4b36d05ccc
Minor fixes, improvements
...
When UDPC_ConnectionId is initialized, all of its bytes are now zeroed
out.
2019-12-18 14:20:29 +09:00
5ec344b733
Add way to get connection queued size
...
Requires locking the mutex for access to conMap.
2019-12-18 13:47:46 +09:00
62ac6e779f
Bug fixes
...
Fixed not setting output int to 0 to specify zero connections when
returning connection IDs.
2019-12-17 20:58:44 +09:00
dbdade3b00
Impl disc. request (untested), del make_unique
2019-12-17 20:05:56 +09:00
a4efd98890
Replace "poor man's optional" with std::unique_ptr
2019-12-17 19:12:54 +09:00
aa59777f99
Fix create_id_easy not parsing ipv4 addr correctly
2019-12-17 12:52:10 +09:00
58493ee936
Fix UnitTests using C++17 (now uses C++11)
2019-12-11 21:24:28 +09:00
ece17e1aca
Drop support from C++17 to C++11
...
std::optional replaced with Entry in TSLQueue (which is basically a poor
man's optional).
2019-12-11 20:00:48 +09:00
7c444cb460
Impl auth-policy for handling with(out) auth
2019-12-09 21:27:58 +09:00
d94b44e4de
More documentation, fix constants to be #define'd
2019-12-06 20:49:30 +09:00
4d623c3837
Update .gitignore
2019-12-04 15:08:25 +09:00
6742e06596
More work on Doxygen style documentation
2019-12-04 13:08:30 +09:00
feb859d745
Begin doxygen-style documentation WIP
2019-11-27 20:26:40 +09:00
69256839ac
Minor fixes/refactorings
2019-11-27 20:12:57 +09:00
04fa5ca017
Add is_valid_context(), fixes/refactorings
2019-11-27 19:47:51 +09:00
8d1dbead20
Add set_libsodium_key_easy(), fixes/refactorings
2019-11-27 19:41:38 +09:00
6b14d86822
Fixes for setting pub/sec keys
...
Added more to NetworkTest to test new changes.
2019-11-21 15:15:05 +09:00
c24273ea65
Add unset_libsodium_keys()
...
Still untested
2019-11-21 12:23:40 +09:00
240ed9821f
Add set peer_pk, sk/pk, start/stop threaded update
...
Note, this code is UNTESTED.
2019-11-19 20:55:20 +09:00
4cfe35ecd1
libsodium support is now optional
...
Packet struture has been changed to support UDPC without libsodium
sending packets to UDPC with libsodium.
2019-11-18 17:37:03 +09:00
f2b4672318
Add way to specify sleep time for threaded update
2019-11-13 14:06:48 +09:00
f9e1bca4c1
Add UDPC_create_id_easy
...
UDPC_create_id_easy will detect if the input addr string is link local
or not, and will create the ipv6 address based on it.
2019-11-13 12:15:12 +09:00
90b36e3061
Convert NetworkTest to C from C++
2019-11-13 11:47:53 +09:00
7b5cf3b6f8
Add events, refactorings
...
Added event system to lessen the use of the main mutex and instead use
thread safe data structures (TSLQueue). Also can enable and check events
during execution (connect, disconnect, good mode, bad mode).
Fixes and refactorings.
2019-11-11 16:08:51 +09:00
d86b7e4e1d
Fix use of addr/socket types
2019-11-11 13:37:51 +09:00
00c1be07dc
Replace c_impl, remove rust_binding, with cpp_impl
2019-11-11 13:08:36 +09:00
a11c99e115
Remove unused TSQueue and RingBuffer
2019-11-06 14:42:35 +09:00
7c889eee6a
Fixes and improvements (add use of TSLQueue)
...
Replace "unsigned long long" in TSLQueue with "unsigned long" to keep
compatibility with C.
Add top_and_pop_and_rsize() to TSLQueue.
Fix log levels in UDPC.
Replace TSQueue with TSLQueue in UDPC_Context.
Also fix NetworkTest with TSLQueue related changes.
2019-11-06 14:39:09 +09:00
742db465dd
Minor fix to size pointer in TSLQueue iterator
...
Prevent pointer change errors by making the pointer itself const.
2019-11-06 13:34:55 +09:00
a5873624aa
Fix size count in TSLQueue when using iterator
2019-11-06 13:32:39 +09:00
3f338be365
Add more tests to UnitTest for TSLQueue
2019-11-06 12:54:03 +09:00
3830be6e2d
Add iterator to TSLQueue
...
Removed shared_ptr "locks", replaced by iterator owning a lock_guard.
2019-11-03 18:46:25 +09:00
10899ffaab
Replace std::list with own doubly-linked-list
...
TODO iterator
2019-10-29 20:33:16 +09:00