]>
git.seodisparate.com - UDPConnection/log
Stephen Seo [Tue, 11 Mar 2025 11:32:10 +0000 (20:32 +0900)]
Update README.md
Remove links to git.seodisparate.com as I no longer host a repository
(and conan repository) there.
Stephen Seo [Sun, 14 Jul 2024 02:36:44 +0000 (11:36 +0900)]
Support Macos linking c++ stl in CMakeLists.txt
Stephen Seo [Sun, 14 Jul 2024 02:33:08 +0000 (11:33 +0900)]
Update conanfile.py linking c++ stl for Macos too
TODO: Figure out linking for Windows.
Stephen Seo [Sat, 13 Jul 2024 13:49:56 +0000 (22:49 +0900)]
Attempt to fix conan build
Stephen Seo [Sat, 13 Jul 2024 13:43:09 +0000 (22:43 +0900)]
Merge branch 'master' into conan
Stephen Seo [Sat, 13 Jul 2024 13:42:53 +0000 (22:42 +0900)]
Version 1.2
Conan configuration was changed, so bump version for it.
Stephen Seo [Sat, 13 Jul 2024 13:41:16 +0000 (22:41 +0900)]
Fix conanfile.py/CMakeLists.txt for C consumers
The new configuration should make C consumers link to "stdc++" by
default, which should fix building with static libs for C programs.
Stephen Seo [Sat, 13 Jul 2024 08:12:46 +0000 (17:12 +0900)]
Minor fix to info in release action/workflow
Stephen Seo [Sat, 13 Jul 2024 07:14:00 +0000 (16:14 +0900)]
Make test work with C compiler not C++ compiler
Stephen Seo [Sat, 13 Jul 2024 07:02:02 +0000 (16:02 +0900)]
Release versions of UDPC without libsodium
Stephen Seo [Sat, 13 Jul 2024 06:29:41 +0000 (15:29 +0900)]
Update release info in release action/workflow
Stephen Seo [Sat, 13 Jul 2024 06:03:52 +0000 (15:03 +0900)]
Merge branch 'master' into conan
Stephen Seo [Sat, 13 Jul 2024 05:47:29 +0000 (14:47 +0900)]
Add forgejo workflow to build and publish library
Stephen Seo [Sat, 13 Jul 2024 05:52:38 +0000 (14:52 +0900)]
Make conan example project work with static lib
Stephen Seo [Sat, 13 Jul 2024 04:46:08 +0000 (13:46 +0900)]
Update version to udpc/1.1
Stephen Seo [Sat, 13 Jul 2024 04:44:55 +0000 (13:44 +0900)]
Merge branch 'master' into conan
Stephen Seo [Sat, 13 Jul 2024 04:44:00 +0000 (13:44 +0900)]
Update version to 1.1
Specify "SOVERSION" for shared lib so that libUDPC.so.1 is the default
instead of libUDPC.so.1.0 .
Stephen Seo [Sat, 13 Jul 2024 04:18:50 +0000 (13:18 +0900)]
Merge branch 'master' into conan
Stephen Seo [Sat, 13 Jul 2024 04:18:43 +0000 (13:18 +0900)]
Update README.md
Stephen Seo [Sat, 13 Jul 2024 02:38:52 +0000 (11:38 +0900)]
Minor tweaks to actions/workflows files (unittest)
Stephen Seo [Sat, 13 Jul 2024 02:27:48 +0000 (11:27 +0900)]
Add example CMake project that uses UDPC
Stephen Seo [Fri, 12 Jul 2024 08:08:32 +0000 (17:08 +0900)]
Update github workflow to use conan
Stephen Seo [Fri, 12 Jul 2024 07:46:31 +0000 (16:46 +0900)]
Update forgejo workflow to use conan
Stephen Seo [Fri, 12 Jul 2024 07:34:27 +0000 (16:34 +0900)]
Add conan related files and adapt CMakeLists.txt
This is put in a new "conan" branch. Changes to the conan build process
will only occur on this branch.
Stephen Seo [Sat, 13 Jul 2024 02:42:53 +0000 (11:42 +0900)]
Update README.md
Stephen Seo [Fri, 12 Jul 2024 07:39:43 +0000 (16:39 +0900)]
Update README.md
Stephen Seo [Fri, 12 Jul 2024 07:38:13 +0000 (16:38 +0900)]
Add link to published conan package
Stephen Seo [Fri, 12 Jul 2024 06:52:53 +0000 (15:52 +0900)]
Rework unit-tests to not use GTest
Stephen Seo [Mon, 22 Jan 2024 02:12:58 +0000 (11:12 +0900)]
Have forgejo action/workflow use "any_archLinux"
Stephen Seo [Sun, 14 Jan 2024 01:31:38 +0000 (10:31 +0900)]
std::atomic doesn't need volatile
Stephen Seo [Fri, 12 Jan 2024 07:36:01 +0000 (16:36 +0900)]
Reduce verbosity of unit test logs
Stephen Seo [Fri, 12 Jan 2024 07:32:42 +0000 (16:32 +0900)]
Allow move for TSLQIter
Should fix builds of UDPConnection.cpp with "-std=c++11".
Stephen Seo [Fri, 12 Jan 2024 05:31:36 +0000 (14:31 +0900)]
Github action: ensure current ref is checked out
Stephen Seo [Fri, 12 Jan 2024 05:29:49 +0000 (14:29 +0900)]
Use apt-get, add libsodium dep to github action
Stephen Seo [Fri, 12 Jan 2024 05:26:11 +0000 (14:26 +0900)]
Add Github action to run UnitTests
Stephen Seo [Fri, 12 Jan 2024 05:06:14 +0000 (14:06 +0900)]
Add action/workflow to run UnitTest
Stephen Seo [Fri, 12 Jan 2024 04:55:28 +0000 (13:55 +0900)]
Add UnitTest file for CXX11_shared_spin_lock
Stephen Seo [Tue, 19 Dec 2023 04:47:19 +0000 (13:47 +0900)]
Tweak compare_exchange_weak(...) in spin-lock
Stephen Seo [Mon, 23 Oct 2023 06:53:52 +0000 (15:53 +0900)]
Fix invalid use of mutex in TSLQueue
Mutex was removed in favor of the custom SharedSpinLock.
Stephen Seo [Thu, 19 Oct 2023 12:07:08 +0000 (21:07 +0900)]
Don't fail on "try" fns if failed to get spinLock
In SharedSpinLock: Only fail on "try" fns after spinLock was acquired
and condition is not met.
Stephen Seo [Wed, 18 Oct 2023 13:28:40 +0000 (22:28 +0900)]
Refactor shared-spin-lock to use atomic "spinLock"
Stephen Seo [Sat, 22 Jul 2023 10:07:32 +0000 (19:07 +0900)]
Minor refactorings
Stephen Seo [Sat, 22 Jul 2023 09:58:36 +0000 (18:58 +0900)]
Reland C++11 "shared_lock" with iter remove fix
On iterator remove, the iterator will trade the read lock for a write
lock, and trade back for a read lock once the remove has been completed.
Stephen Seo [Fri, 12 Jan 2024 04:31:36 +0000 (13:31 +0900)]
Add note in docs about update for UDPC_init(...)
Stephen Seo [Thu, 11 Jan 2024 12:05:21 +0000 (21:05 +0900)]
Update LICENSE year
Stephen Seo [Thu, 11 Jan 2024 12:05:02 +0000 (21:05 +0900)]
Update debug optimization flag
Stephen Seo [Thu, 11 Jan 2024 11:07:25 +0000 (20:07 +0900)]
UnitTest for start/stop threaded update and fix
Stephen Seo [Thu, 11 Jan 2024 10:40:15 +0000 (19:40 +0900)]
Enforce thread-safety on destroy context
Stephen Seo [Thu, 11 Jan 2024 10:00:27 +0000 (19:00 +0900)]
Use mutex when enabling/disabling threaded-update
Stephen Seo [Thu, 11 Jan 2024 09:42:06 +0000 (18:42 +0900)]
Use atomic_bool for auto-updating "flag"
Stephen Seo [Mon, 1 Jan 2024 08:15:55 +0000 (17:15 +0900)]
Add note about usage of UDPC header in docs
Stephen Seo [Mon, 1 Jan 2024 03:25:04 +0000 (12:25 +0900)]
Note in documentation about thread safety
Basically, all functions should be thread-safe unless mentioned
otherwise.
Stephen Seo [Tue, 19 Dec 2023 07:44:02 +0000 (16:44 +0900)]
Fixes to .forgejo/workflows/doxygen.yaml
Stephen Seo [Tue, 19 Dec 2023 03:59:10 +0000 (12:59 +0900)]
Update README.md
Stephen Seo [Tue, 19 Dec 2023 03:54:52 +0000 (12:54 +0900)]
Use rsync setting up seodisparate doxygen docs
Stephen Seo [Tue, 19 Dec 2023 03:49:56 +0000 (12:49 +0900)]
Add Forgejo workflow for doxygen docs
Stephen Seo [Sat, 22 Jul 2023 08:28:18 +0000 (17:28 +0900)]
Revert "Impl "RWLock" for use in TSLQueue"
This reverts commit
cf27a6bb76f4dae2344d6061eb199e2b35eb754a .
The use of "shared_lock" in TSLQueue is unsafe because of two things:
- The TSLQueue iterator takes a "read" lock.
- The TSLQueue iterator can erase the current element.
Stephen Seo [Sat, 22 Jul 2023 08:28:13 +0000 (17:28 +0900)]
Revert "Replace unnecessary use of atomic in "shared_lock""
This reverts commit
b50e50b5fbdeaa3990984a6bda052bbb92c234a9 .
Stephen Seo [Sat, 22 Jul 2023 07:45:52 +0000 (16:45 +0900)]
Replace unnecessary use of atomic in "shared_lock"
Stephen Seo [Sat, 22 Jul 2023 07:29:19 +0000 (16:29 +0900)]
Impl "RWLock" for use in TSLQueue
This project supports C++11, and std::shared_lock was made available in
C++17, thus a "shared_spin_lock" was created with similar functionality.
This "shared_spin_lock" is used in TSLQueue.
Stephen Seo [Sat, 22 Jul 2023 04:25:43 +0000 (13:25 +0900)]
Fix CMakeLists.txt, handle -Weffc++ warnings
Stephen Seo [Wed, 19 Jul 2023 02:35:28 +0000 (11:35 +0900)]
Update README.md
Stephen Seo [Tue, 4 Jul 2023 02:41:45 +0000 (11:41 +0900)]
Add docs for UDPC_no* functions
Stephen Seo [Mon, 3 Jul 2023 03:03:52 +0000 (12:03 +0900)]
Update README.md
Stephen Seo [Mon, 26 Jun 2023 05:01:42 +0000 (14:01 +0900)]
Refactor addr logprint via template specialization
Stephen Seo [Thu, 22 Jun 2023 04:25:26 +0000 (13:25 +0900)]
Impl "unsafe" versions of UDPC_atostr(...)
These "unsafe" versions are guaranteed to not have the returned address
strings be overwritten by UDPC, but they must be manually free'd later
(as mentioned in the documentation).
Stephen Seo [Thu, 22 Jun 2023 03:39:11 +0000 (12:39 +0900)]
Conditionally use UDPC_atostr internally
Previous implementation used UDPC_atostr() frequently. This commit
changes the implementation to only call UDPC_atostr() if the log level
of the code logging to output will cause the log to be output.
Stephen Seo [Thu, 22 Jun 2023 03:07:26 +0000 (12:07 +0900)]
Add documentation for UDPC_atostr...
Stephen Seo [Wed, 21 Jun 2023 04:23:26 +0000 (13:23 +0900)]
Fix potential memory corruption bug
UDPC_atostr(...) uses a uint32_t as an offset into a buffer inside the
UDPC Context such that there can be at most 32 different addr-strings.
The call is thread-safe, up to a point (at most 32 concurrent calls will
return correct strings). The problem was that the offset was not being
reset to 0 and was always being incremented by 40. Should the offset
overflow, the offset into the buffer will be "mis-aligned" such that the
32nd offset into the buffer can possibly overwrite memory past the
buffer's end if the addr string is long enough.
The fix is to use a mutex instead of an atomic uint32_t to lock a
code-block that will always prevent overflow (using modulus operator).
I think the speed-loss is negligable (using a lock instead of an atomic
uint32_t) since it isn't expected for programs using UDPC to use
UDPC_atostr(...) very frequently.
Stephen Seo [Wed, 19 Apr 2023 10:11:03 +0000 (19:11 +0900)]
Fix potential nullptr deref in free_PacketInfo_ptr
Stephen Seo [Wed, 19 Apr 2023 09:26:45 +0000 (18:26 +0900)]
Add UDPC_free_PacketInfo_ptr(...)
Also add unit test for this function.
Stephen Seo [Tue, 18 Apr 2023 05:05:52 +0000 (14:05 +0900)]
Update LICENSE year
Stephen Seo [Tue, 18 Apr 2023 05:03:31 +0000 (14:03 +0900)]
Refactor UDPC::get_empty_pinfo()
Stephen Seo [Tue, 10 Jan 2023 03:14:57 +0000 (12:14 +0900)]
Impl handling Ctrl-C for Windows in NetworkTest
Stephen Seo [Tue, 10 Jan 2023 02:51:54 +0000 (11:51 +0900)]
Better handling of receiving packets in recv loop
On error processing a received packet, continue to receive packets in
the loop. If no packet was received, the loop ends.
Stephen Seo [Thu, 8 Dec 2022 07:54:02 +0000 (16:54 +0900)]
Update documentation about UDPC_update(ctx)
Stephen Seo [Sun, 4 Dec 2022 10:57:37 +0000 (19:57 +0900)]
Receive packets in loop til none left in interval
Also some formatting fixes (max 80 chars in edited code).
Stephen Seo [Wed, 23 Nov 2022 05:14:05 +0000 (14:14 +0900)]
Update LICENSE
Stephen Seo [Wed, 23 Nov 2022 05:13:44 +0000 (14:13 +0900)]
Handle SIGINT (Ctrl-C) in NetworkTest
Stephen Seo [Thu, 9 Sep 2021 09:13:38 +0000 (18:13 +0900)]
Update README.md
Stephen Seo [Thu, 9 Sep 2021 09:10:07 +0000 (18:10 +0900)]
Add gh-pages workflow for Doxygen documentation
Stephen Seo [Mon, 30 Aug 2021 03:07:27 +0000 (12:07 +0900)]
Update .gitignore
Stephen Seo [Wed, 25 Aug 2021 10:45:01 +0000 (19:45 +0900)]
Fix README.md
Stephen Seo [Sun, 14 Feb 2021 04:56:26 +0000 (13:56 +0900)]
Update README.md
Stephen Seo [Sun, 10 Jan 2021 05:40:38 +0000 (14:40 +0900)]
Update year in LICENSE
Stephen Seo [Sun, 10 Jan 2021 05:40:17 +0000 (14:40 +0900)]
Add |id| to PacketInfo
Stephen Seo [Tue, 23 Jun 2020 04:01:27 +0000 (13:01 +0900)]
Use dll_export (for builds for Windows)
Stephen Seo [Tue, 28 Apr 2020 11:55:16 +0000 (20:55 +0900)]
Attempt to make NetworkTest work on Windows
Stephen Seo [Tue, 28 Apr 2020 10:38:07 +0000 (19:38 +0900)]
Add/fix more documentation
Stephen Seo [Mon, 27 Apr 2020 10:34:04 +0000 (19:34 +0900)]
Minor fixes
Stephen Seo [Mon, 27 Apr 2020 02:47:50 +0000 (11:47 +0900)]
Fix check addr endianness in a4toa6 function
Stephen Seo [Sun, 26 Apr 2020 09:36:49 +0000 (18:36 +0900)]
Impl create id with hostname
Previously, ids could only be created with an ip address. Now they can
be made with a hostname, which will be looked up by UDPC.
Also fix client still requesting connections even if
accept-new-connections flag is false.
Stephen Seo [Sat, 18 Apr 2020 07:19:59 +0000 (16:19 +0900)]
Minor fix to documentation
Stephen Seo [Sat, 18 Apr 2020 07:09:00 +0000 (16:09 +0900)]
Use memcpy instead of pointer casted assignment
std::memcpy is used over int pointer casted assignment due to possible
alignment issues that may cause the casted pointer to be invalid.
Stephen Seo [Wed, 15 Apr 2020 10:49:17 +0000 (19:49 +0900)]
Change how UDPC_PacketInfo handles it's data
The "data" member variable in UDPC_PacketInfo is now handled as a
pointer to dynamic data, instead of an array with a fixed size. Every
time a UDPC_PacketInfo is received from the context,
UDPC_free_PacketInfo() must be called on it to avoid a memory leak.
Stephen Seo [Fri, 6 Mar 2020 04:03:47 +0000 (13:03 +0900)]
Fix compilation fail on no libsodium
Stephen Seo [Fri, 6 Mar 2020 03:05:33 +0000 (12:05 +0900)]
Fix use of C++14/C++17, only C++11 is supported
Stephen Seo [Thu, 16 Jan 2020 11:28:42 +0000 (20:28 +0900)]
Add helpers converting network-order (big-endian)
Stephen Seo [Thu, 16 Jan 2020 11:28:01 +0000 (20:28 +0900)]
Fix UDPC::isBigEndian returning always true
Stephen Seo [Thu, 16 Jan 2020 02:30:22 +0000 (11:30 +0900)]
Distinguish manual variables and pkgconf variables
Variables checked to manually set libsodium paths have been changed to
prevent conflict with variables set by searching for libsodium via
pkgconfig.