Commit Graph
3508 Commits
Author SHA1 Message Date
Cyrille Beraud b828060ac2 proxy: fix listener restart on connectivity change
When a device wakes up from Doze mode or switches networks (e.g. WiFi to 4G),
old TCP sockets may become silently dead. When connectivityChanged() is
called, the proxy client triggers a new HTTP request (getProxyInfos)
which succeeds since it uses a fresh socket, leading the client to
believe the connection is still UP.

Because the status doesn't change (Connected -> Connected),
launchConnectedCbs_ was not set, and restartListeners() was never invoked.
Consequently, push subscriptions and permanent puts were not renewed
on the proxy, causing the device to appear offline on the DHT.

This forces launchConnectedCbs_ to true on connectivityChanged, ensuring
that listeners and subscriptions are properly restarted.
2026-06-07 19:13:14 +02:00
Adrien Béraud 9a60329f66 proxy server: use token as request url 2026-06-03 20:00:34 -04:00
Adrien Béraud 0bb393ec36 http: allow to build Request by std::string url 2026-06-03 19:30:53 -04:00
vx32 947610003b http: allow to build Url from std::string, cleanup 2026-06-03 19:14:32 -04:00
Adrien Béraud dcbe158554 proxy server: allow url-encoded base64 for UnifiedPush 2026-06-03 19:12:40 -04:00
vx32 38e9a7fd61 base64: add support for url-encoded base64 2026-06-03 17:01:19 -04:00
François-Simon Fauteux-Chapleau 7cf3e8b738 thread_pool: notify when task queue becomes empty
This prevents ThreadPool::stop from hanging if it is called with `wait`
set to true (which is notably the case in ThreadPool::join) and the
pool's task queue is non-empty.
v4.0.4
2026-05-21 10:17:08 -04:00
François-Simon Fauteux-Chapleau e924ef5620 tests: add regression test for hang in thread pool
The worker threads in a ThreadPool don't signal the pool's condition
variable when completing the last task in the queue. As a consequence,
ThreadPool::join() hangs if called while the task queue is non-empty.
2026-05-21 10:17:08 -04:00
Adrien Béraud d96115b445 docs: update manpage for dhtnode 2026-05-18 10:50:23 -04:00
Adrien Béraud bb96d2d80e dhtchat: adapt for new API v4.0.3 2026-05-18 10:36:48 -04:00
Adrien Béraud 8b96652b32 dhtrunner: add signatures for putEncrypted(InfoHash, PkId to, Value&&) 2026-05-18 10:36:48 -04:00
Adrien Béraud d1235660d5 crypto: add support to build with Nettle 4.0 v4.0.2 2026-05-13 14:36:13 -04:00
Adrien Béraud 23c6b5547b python: update for API changes in 4.0 v4.0.1 2026-05-13 14:18:08 -04:00
Adrien Béraud 61c4a3880f update version to 4.0.0 v4.0.0 2026-05-11 09:28:57 -04:00
Adrien Béraud 44f2aaa876 remove deprecated APIs 2026-05-11 09:27:56 -04:00
Adrien Béraud a363d573e3 dht: fix persisted permanent values never expiring
When values are exported and re-imported, permanent values retain their
time_point::max() expiration but lose their permanent flag. This caused
them to be stored as non-permanent with an effectively infinite
expiration, so they would never expire.

Cap the expiration of non-permanent values to created + type.expiration,
ensuring that imported permanent values get a finite expiration matching
their value type.
2026-05-09 00:39:49 -04:00
Adrien Béraud 3ff9338980 tests: add test for permanent value import expiration
Add testImportPermanentValueExpires to verify that values originally
stored as permanent (with time_point::max() expiration) properly expire
after being exported and re-imported, since the permanent flag is lost
during the import process.
2026-05-09 00:39:49 -04:00
Adrien Béraud ea3c0f0d93 update version to 3.7.9 v3.7.9 2026-05-02 20:40:25 -04:00
Adrien Béraud f0cf074576 BUILD.md: add llhttp dependency and remove CMAKE_INSTALL_PREFIX 2026-05-02 19:08:02 -04:00
Adrien Béraud 760586ed4a python: build for python 3.14 2026-05-02 19:06:25 -04:00
dependabot[bot] b951f4f40a build(deps): bump softprops/action-gh-release from 2 to 3
Bumps [softprops/action-gh-release](https://github.com/softprops/action-gh-release) from 2 to 3.
- [Release notes](https://github.com/softprops/action-gh-release/releases)
- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)
- [Commits](https://github.com/softprops/action-gh-release/compare/v2...v3)

---
updated-dependencies:
- dependency-name: softprops/action-gh-release
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-18 13:55:23 +10:00
dependabot[bot] 63cc650a72 build(deps): bump pypa/cibuildwheel from 3.4.0 to 3.4.1
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 3.4.0 to 3.4.1.
- [Release notes](https://github.com/pypa/cibuildwheel/releases)
- [Changelog](https://github.com/pypa/cibuildwheel/blob/main/docs/changelog.md)
- [Commits](https://github.com/pypa/cibuildwheel/compare/v3.4.0...v3.4.1)

---
updated-dependencies:
- dependency-name: pypa/cibuildwheel
  dependency-version: 3.4.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-18 13:54:34 +10:00
Adrien Béraud c020d2e1ef update version to 3.7.8 v3.7.8 2026-04-02 16:37:17 -04:00
copilot-swe-agent[bot]andaberaud aae1bb2ae5 infohash: fix unaligned memory access on strict-alignment architectures (sparc64)
Agent-Logs-Url: https://github.com/savoirfairelinux/opendht/sessions/d4106989-db2c-4d34-b1ea-4ca2ecab524a

Co-authored-by: aberaud <101827+aberaud@users.noreply.github.com>
2026-04-02 16:08:33 -04:00
Pavan Koushik Nellore 593e59e093 proxy: add pushType field and propagate through proxy notifications 2026-04-02 15:03:11 -04:00
dependabot[bot] 86d5065aca build(deps): bump microsoft/setup-msbuild from 2 to 3
Bumps [microsoft/setup-msbuild](https://github.com/microsoft/setup-msbuild) from 2 to 3.
- [Release notes](https://github.com/microsoft/setup-msbuild/releases)
- [Commits](https://github.com/microsoft/setup-msbuild/compare/v2...v3)

---
updated-dependencies:
- dependency-name: microsoft/setup-msbuild
  dependency-version: '3'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-25 16:25:14 -04:00
dependabot[bot] 308d8ff82b build(deps): bump actions/upload-artifact from 6 to 7
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 6 to 7.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-19 18:32:26 -04:00
dependabot[bot] 34b9ddd023 build(deps): bump docker/build-push-action from 6 to 7
Bumps [docker/build-push-action](https://github.com/docker/build-push-action) from 6 to 7.
- [Release notes](https://github.com/docker/build-push-action/releases)
- [Commits](https://github.com/docker/build-push-action/compare/v6...v7)

---
updated-dependencies:
- dependency-name: docker/build-push-action
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-19 18:32:04 -04:00
dependabot[bot] 88cb14ad95 build(deps): bump actions/download-artifact from 7 to 8
Bumps [actions/download-artifact](https://github.com/actions/download-artifact) from 7 to 8.
- [Release notes](https://github.com/actions/download-artifact/releases)
- [Commits](https://github.com/actions/download-artifact/compare/v7...v8)

---
updated-dependencies:
- dependency-name: actions/download-artifact
  dependency-version: '8'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-03-19 18:31:48 -04:00
Adrien Béraud e453a47242 update version to 3.7.7 v3.7.7 2026-03-16 11:05:38 -04:00
Adrien Béraud 199090b959 network engine: log exceptions 2026-03-15 19:42:09 -04:00
Adrien Béraud d250e6a349 dhtrunner: cleanup 2026-03-15 10:43:46 -04:00
Adrien Béraud 99da0be2b7 misc: remove lock mutex template argument 2026-03-15 00:00:33 -04:00
Adrien Béraud 22d219c695 dht: close socket on auth error 2026-03-14 18:19:06 -04:00
Adrien Béraud ccd4865df5 dht: allow search table update with listen token refresh 2026-03-14 16:17:32 -04:00
Adrien Beraud 5afc452f32 build/cmake: set SIMDUTF_CXX_STANDARD to match CMAKE_CXX_STANDARD 2026-03-14 11:37:53 -04:00
Adrien Beraud a06596d365 tests: unlock mutex before join 2026-03-14 11:37:50 -04:00
Adrien Béraud aa260c7b40 tests: add testShutdownCompletesWithPendingPut 2026-03-14 11:37:43 -04:00
Adrien Béraud 7183847e44 tests: use random ports 2026-03-13 22:59:41 -04:00
Adrien Béraud 884cb09220 tests: bound dhtrunner async waits 2026-03-13 22:00:09 -04:00
Adrien Béraud 04edaafa57 dht: simplify bootstrap logic 2026-03-13 20:59:24 -04:00
Adrien Béraud 6be58884aa tests: set timout for test_crypto to 60s 2026-03-13 20:58:53 -04:00
Adrien Béraud d50d3d4f32 tests: set timout for test_dhtrunner to 60s 2026-03-13 20:52:56 -04:00
Adrien Béraud 8acafe844d dht: release pending bootstrap after first attempt 2026-03-13 20:39:40 -04:00
Adrien Béraud 688b713c09 tests: cover bootstrap put failure after disconnect 2026-03-13 20:39:37 -04:00
Adrien Béraud 017df59dde update version to 3.7.6 v3.7.6 2026-03-13 18:30:43 -04:00
Adrien Béraud 964800a506 tests: disable test_networkengine on MSVC 2026-03-13 16:30:36 -04:00
Adrien Béraud 4f423d066f tests: attempt to fix test_networkengine on MSVC 2026-03-13 16:09:49 -04:00
Adrien Béraud ae49b96c2d tests: attempt to fix test_networkengine on MSVC 2026-03-13 16:02:33 -04:00
Adrien Béraud 3701b21425 tests: attempt to fix test_networkengine on MSVC 2026-03-13 15:49:52 -04:00