Commit Graph
3623 Commits
Author SHA1 Message Date
Adrien Beraud bbbd9122af python: use loopback addresses in bootstrap test 2026-10-26 00:51:27 -04:00
Adrien Beraud cf58d66282 python: expose node state persistence configuration 2026-10-26 00:51:27 -04:00
Adrien Beraud 2ddf1e5ec5 python: await shutdown before checking persisted state 2026-10-26 00:51:27 -04:00
Adrien Beraud e48bfd578a python: cover node state persistence configuration 2026-10-26 00:51:27 -04:00
Adrien Beraud 1c3fc22c31 meson: install Python bindings as opendht package 2026-10-26 00:51:27 -04:00
Adrien Beraud b6cf2fd246 python: expose key persistence and value metadata 2026-10-26 00:51:27 -04:00
Adrien Beraud 91c3f62c0c python: validate restored keys through certificate chains 2026-10-26 00:51:27 -04:00
Adrien Beraud 2703cf129d python: cover key persistence and value metadata 2026-10-26 00:51:27 -04:00
Adrien Beraud 51c2aadd4e python: handle cancelled and repeated async completions 2026-10-26 00:51:27 -04:00
Adrien Beraud 8b20e912d6 docker: use alpine 3.24 runtime 2026-10-26 00:51:27 -04:00
Adrien Beraud b66ff83fe2 python: preserve permanence in blocking puts 2026-10-26 00:51:27 -04:00
Adrien Beraud 552813e1b9 python: cover permanence forwarding and async cancellation 2026-10-26 00:51:27 -04:00
Adrien Beraud 601a8fbf80 python: release GIL while joining and destroying runners 2026-10-26 00:51:27 -04:00
Adrien Beraud 26488d18a6 python: translate crypto errors and guard empty objects 2026-10-26 00:51:27 -04:00
Adrien Beraud 53c509c54f python: cover crypto errors and GIL-safe teardown 2026-10-26 00:51:27 -04:00
Adrien Beraud def6a28d96 python: fix listener ownership and isolate run config 2026-10-26 00:51:27 -04:00
Adrien Beraud dbd5953b17 python: cover listener lifetime and config isolation 2026-10-26 00:51:27 -04:00
Cyrille BéraudandCopilot 2893823a77 securedht: forward push platform and topic
SecureDht only forwarded the push token to the DHT it wraps, so the
push platform and topic given to DhtRunner after the proxy client was
created never reached it. A device started without push platform
(e.g. a Jami account created by a build without push support) then
subscribed with an empty platform once given a token, and the proxy
server pushed it as an iOS device.

Co-authored-by: Copilot (Claude Opus 5.5) <223556219+Copilot@users.noreply.github.com>
2026-10-26 02:55:59 +00:00
Cyrille BéraudandCopilot 3ec03ccc0b proxy_server: keep push platform up to date
The DHT listen callback of a push subscription kept the push type and
topic of the request that created it. Refreshing the subscription
with another platform updated the listener, but values kept being
pushed to the first platform: an Android device that once subscribed
without platform was pushed as an iOS device forever (BadDeviceToken)
and never received values such as connection requests.

Keep the push type and topic in the session context shared with the
callback, and update them on each subscription refresh and when the
state is restored.

Co-authored-by: Copilot (Claude Opus 5.5) <223556219+Copilot@users.noreply.github.com>
2026-10-26 02:55:59 +00:00
Cyrille BéraudandCopilot 20fa751da0 tests: check push platform of proxy notifications
Move the fake push gateway of the full chain test into a reusable
helper, and add two tests showing that the proxy server pushes to the
wrong platform:
- when a device refreshes its subscription with another platform,
  new values keep being pushed with the platform of the first
  subscription;
- a platform set after the proxy client started is not used by its
  subscriptions.

Co-authored-by: Copilot (Claude Opus 5.5) <223556219+Copilot@users.noreply.github.com>
2026-10-26 02:55:59 +00:00
Adrien Beraud 0d572f0dab build: update supported Python versions
Drop Python 3.9 and 3.10 and add support for Python 3.15.
2026-10-25 18:16:26 -04:00
Adrien Beraud d9c401e1e2 docker: migrate to 26.04 for main LLVM image v4.4.2.1 2026-10-25 12:42:20 -04:00
Adrien Beraud dbdbe65a5d docker: fix local build context and missing dependencies 2026-10-25 12:39:30 -04:00
Adrien Beraud 6f5bec3af6 update version to 4.4.2 v4.4.2 2026-10-25 12:11:46 -04:00
Adrien Beraud d07a9e6583 ci: update cibuildwheel to v4.3.4 2026-10-25 12:06:54 -04:00
Adrien Beraud fd43a329e7 deps: update RESTinio to 0.7.10 across Docker and CI 2026-10-25 11:58:53 -04:00
Adrien Beraud 93b2e8d5b9 ci: migrate vcpkg setup and binary caching 2026-10-25 13:46:35 +00:00
Adrien Beraud d66713d97e build: update vcpkg to 2026.10.16 2026-10-25 13:46:35 +00:00
Adrien Beraud 7af9868c47 docker: update to Alpine 3.24, Ubuntu 26.04 2026-10-24 23:25:08 -04:00
Adrien Beraud 05a524b038 docker: update RESTinio to 0.7.10 2026-10-24 23:25:08 -04:00
Adrien Beraud 57ed00579e pht: preserve prefix padding encoding 2026-10-25 03:03:35 +00:00
Adrien Beraud 9ffccb3956 pht: test prefix padding compatibility 2026-10-25 03:03:35 +00:00
Cyrille BéraudandCopilot d99324ebd4 pht: fix the bit arithmetic of Prefix
Prefix::size_ counts bits, but commonBits walked content_ a byte at a
time up to it. Two prefixes that agree on their whole common length are
therefore read well past their end, which AddressSanitizer reports as a
heap-buffer-overflow, and the count that comes back is eight times too
large. A lookup with a common prefix length hits this as soon as an
index entry matches the key it is looking for, and entry.prefix comes
straight off the network. The flags were indexed the same way, so a
partially known prefix was read at the wrong position too.

swapBit had the other half of the confusion: it flipped bit
(8 - bit) % 8 of the byte, while isActiveBit reads bit 7 - (bit % 8).
getSibling, which flips the last bit of a prefix to name the sibling
node in the trie, therefore returned a prefix differing in some other
bit and sharing the last one, so lookup and insertion looked up the
wrong node. Splitting a leaf and finding a canary both rely on it.

Add tests covering both, which fail before the fix: commonBits returns
193 for two identical 160 bit prefixes, and a prefix and its sibling
share 7 bits rather than all but the last.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-25 03:03:35 +00:00
copilot-swe-agent[bot]andaberaud 933f6cbca1 dhtcluster: import netifaces for interface selection
Co-authored-by: aberaud <101827+aberaud@users.noreply.github.com>
2026-10-25 02:45:22 +00:00
copilot-swe-agent[bot]andaberaud d5d7d6483f test: cover dhtcluster interface address selection
Co-authored-by: aberaud <101827+aberaud@users.noreply.github.com>
2026-10-25 02:45:22 +00:00
dependabot[bot] cc09a39ade build(deps): bump pypa/cibuildwheel from 4.1.1 to 4.3.1
Bumps [pypa/cibuildwheel](https://github.com/pypa/cibuildwheel) from 4.1.1 to 4.3.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/v4.1.1...v4.3.1)

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

Signed-off-by: dependabot[bot] <support@github.com>
2026-10-25 02:44:52 +00:00
Adrien Beraud 621b44c8e8 Revert "disable windows wheel for now"
This reverts commit fc6edb4d20.
v4.4.1
2026-09-23 14:42:57 -04:00
Adrien Beraud e1c088f2e4 build: bump version to 4.4.1 2026-09-23 14:38:36 -04:00
Adrien Beraud a6e0e441ac crypto: use standard unsigned int* for gnutls_ocsp_resp_get_single 2026-09-22 11:31:45 -04:00
Adrien Beraud dcc2ba3492 crypto: use gnutls_ocsp_cert_status_t* in gnutls_ocsp_resp_get_single 2026-09-22 11:31:45 -04:00
Adrien Beraud ccf00d6b09 ports: update shiftmedia-libgnutls to f76d780a6 2026-09-22 11:31:45 -04:00
Adrien Beraud d8250574fc ports: use ForcedIncludeFiles for gnutls_msvc_fixes.h in shiftmedia-libgnutls 2026-09-22 11:31:45 -04:00
Adrien Beraud 0d698c76e8 ports: update shiftmedia-libgnutls to 9ebeb826d 2026-09-22 11:31:45 -04:00
Adrien Beraud e4e3b4e73b ports: set LanguageStandard_C to stdc11 in shiftmedia-libgnutls 2026-09-22 11:31:45 -04:00
Adrien Beraud b26d622f5d ports: update shiftmedia-libgnutls to 37840cfa5 2026-09-22 11:31:45 -04:00
Adrien Beraud 78694751bd ports: update shiftmedia-libgnutls to 4ab78d57e 2026-09-22 11:31:45 -04:00
Adrien Beraud f9b90c5c1c ports: update shiftmedia-libgnutls to 5a5a9dd95 2026-09-22 11:31:45 -04:00
Adrien Beraud 56b848bf47 ports: fix savoirfairelinux/gnutls commit hash and SHA512 in shiftmedia-libgnutls 2026-09-22 11:31:45 -04:00
Adrien Beraud dd875230c3 ports: update shiftmedia-libgnutls to 90eb686e8 2026-09-22 11:31:45 -04:00
Adrien Beraud de1d428e63 ports: use gitlab gnulib mirror archive in shiftmedia-libgnutls 2026-09-22 11:31:45 -04:00