Commit Graph
1753 Commits
Author SHA1 Message Date
Adrien Beraud 54fd6cf64f securedht: avoid calling identity announced callback multiple times 2025-10-10 13:59:44 -04:00
Adrien Béraud d12f9271b8 pht: use const reference for IndexEntry::TYPE
Prevents static initialization order issue
2025-09-22 14:41:22 -04:00
ovari b6f98a8488 Update crypto.cpp 2025-09-14 13:38:35 -04:00
ovari a5e39768e4 Update securedht.cpp 2025-09-14 13:38:35 -04:00
ovari 6f6fdba8dd Update value.cpp 2025-09-14 13:38:35 -04:00
ovari e4b8b0259d Update http.cpp 2025-09-14 13:38:35 -04:00
ovari 8134d6201a Update network_engine.cpp 2025-09-14 13:38:35 -04:00
ovari db4cd7dcc1 Update peer_discovery.cpp 2025-09-14 13:38:35 -04:00
ovari 9d6107c01c Update storage.h 2025-09-14 13:38:35 -04:00
ovari de46d55b13 Update crypto.cpp
“ !” → “.”
bits → bit
can’t → unable to
wrong → incorrect
2025-09-14 13:38:35 -04:00
Adrien Beraud 99c56d13bb crypto: fix build on GnuTLS 3.8.3 and bellow 2025-09-08 16:38:25 -04:00
Adrien Béraud 95fa29d2ec securedht: add CertificateStoreQuery by PkId 2025-09-08 00:14:44 -04:00
Adrien Béraud 0c9d715d6d crypto: allow to generate RSA OAEP private keys 2025-09-07 23:44:47 -04:00
Adrien Béraud cfff247e06 crypto: support RSA OAEP encryption and decryption 2025-09-07 22:15:00 -04:00
Maxim Cournoyer ccec6c2f67 replace usleep with nanosleep
* src/compat/msvc/unistd.h (usleep): Delete.
* tools/dhtcnode.c (main) <usleep>: Replace with nanosleep on non
Windows platform, or Sleep on Windows.

Fixes: #607
2025-07-20 22:25:28 -04:00
Adrien Béraud 3b0cce8c25 Added and tested build scenarios for Windows (MSYS2, MSVC) 2025-07-20 11:55:40 -04:00
Andrey Vukolov 58956549b8 Merge branch 'savoirfairelinux:master' into winbuild 2025-07-15 16:47:24 +02:00
Adrien Beraud 312f883387 proxy server: move ServerStats impl to cpp 2025-07-10 13:46:17 -04:00
Andrey Vukolov a05479e2dc Merge branch 'master' into winbuild
- Built and tested on MSVC for static and dynamic builds, tested.
2025-06-17 18:59:51 +02:00
Adrien Béraud d3e2fd1099 fixes for msvc 2025-06-12 10:32:20 -04:00
Adrien Béraud 6b0e154bd5 build/cmake: add vcpkg support for msvc 2025-06-12 10:32:20 -04:00
Andrey Vukolov fb630e29b9 Merge branch 'savoirfairelinux:master' into winbuild 2025-06-12 09:28:10 +02:00
Adrien Beraud 28ea18671f http: use appropriate log level for DNS result 2025-06-11 16:08:36 -04:00
Andrey Vukolov 798adefcde Fixes for MSYS2
- Set populated only for msgpack-cxx that does not exist for
      MinGW GCC x86_64
      https://packages.msys2.org/base/mingw-w64-msgpack-cxx
    - .gitignore fix for vcpkg (incorporated #760)
    - GnuTLS version handler fix (#755, #758)
2025-06-09 15:31:38 +02:00
Andrey Vukolov 72afb61079 Merge branch 'savoirfairelinux:master' into winbuild 2025-06-09 09:40:26 +02:00
Adrien Béraud e6fc8b7586 dhtrunner: add putEncrypted with PkId 'to' argument 2025-06-09 00:52:05 -04:00
Adrien Béraud 09da6db5e7 securedht: add putEncrypted with PkId 'to' argument 2025-06-09 00:52:05 -04:00
Adrien Béraud e870c3b486 dhtrunner: allow to find certificates by PkId 2025-06-09 00:52:05 -04:00
Adrien Béraud dcf31b2c5f securedht: allow to find certificates by PkId 2025-06-09 00:52:05 -04:00
Adrien Béraud f2eb234fd9 securedht: put certificate at PkId 2025-06-09 00:52:05 -04:00
Andrey Vukolov de8b441dae Merge branch 'master' into winbuild 2025-06-02 16:37:57 +02:00
Andrey Vukolov 5c4997d07e Merge master branch changes
- Applies master branch changes from #753 #754 #755 #756
      and commits for version 3.4.0 by @aberaud to winbuild branch
      for #750
	- CMake version handler for MINIMUM requirement setup to 3.5
2025-06-02 16:26:45 +02:00
Andrey Vukolov 5c21401728 constexpr fixes for preparation of MSVC build
- Addresses https://github.com/savoirfairelinux/opendht/pull/750/files#r2089281221 in #750
    - Adds infohash.cpp file for correct build of the DLL nametables in SHARED mode with MSVC
    - Reverted commits 352e36500c and 6a264d6f73
    - Fixes DLL build issues on Windows due to OPENDHT_PUBLIC definitions described in #750
    - Prepares the build system for merging changes from #750 (@aberaud)
2025-06-01 10:26:18 -04:00
Adrien Béraud acae4bc4ff peer_discovery: use string_view for service type 2025-05-31 19:28:30 -04:00
Andrey Vukolov 54a8fef0ee Windows build fixed for tools (wingetopt, signals)
- Addresses https://github.com/savoirfairelinux/opendht/pull/750#discussion_r2089286643
    - Structures wingetopt and win32 compatibility files for builds on Windows with MSVC
    - Adjusts opendht_EXPORTS definition when building tools on MSVC
2025-05-30 23:05:59 -04:00
Andrey Vukolov b9bd954dfd GnuTLS version handler routine for versions 3.8.7 and later
- Added GnuTLS version handler directives for versions 3.8.7 and later
      https://github.com/savoirfairelinux/opendht/pull/750#discussion_r2089284896
2025-05-23 18:24:35 -04:00
Adrien Béraud c4e75ae66c update copyright year 2025-05-22 19:07:32 -04:00
Adrien Beraud 405220795b http: check for cb in async_read_until 2025-05-22 11:53:05 -04:00
Adrien Beraud 3e407e65fa storage: remove previous value size from quota when appropriate 2025-05-22 11:53:05 -04:00
Adrien Béraud a2dff6a123 dhtrunner: registerCertificate: take certificate by const ref 2025-05-20 21:55:04 -04:00
Adrien Béraud 13af7a6002 dhtrunner: registerCertificate: take certificate by const ref 2025-05-19 23:57:09 -04:00
Adrien Béraud 38b0b2248f crypto: add Certificate::getDN() to read RFC4514 distinguished name 2025-05-19 23:55:42 -04:00
Andrey Vukolov 2fc81ad2dd GnuTLS build fix for MSVC
- Removed GNUTLS_INTERNAL_BUILD definition to avoid
	  usage of POSIX free() function
	- Autotools build fix
2025-04-26 16:55:58 +02:00
Andrey Vukolov ba25b8aeba Incorporated commits for version 3.3.1 + MSVC build fixes
- Incorporated code for version 3.3.1
	- Reverted constexpr commits for hex_map:
	  - 352e36500c
	  - 6a264d6f73
	  as they created a lot of problems during builds on
	  Windows/MSVC.
	- Tested binaried linked dynamically with:
	  - MSYS2 (production-ready)
	  - MSVC (only for testing) !!!danger of memory leaks!!!
	- Tested binaries linked statically on win32 x64 platform
	- Populated libasio for both MSYS2 and MSVC builds on Windows
	- Pipeline fixes to build on Windows using only:
	  - vcpkg for MSVC
	  - MSYS2 pacman for MinGW
	  and remove the external dependency directory

The reference Windows builds are accessible in the following IPFS directory:

https://bafybeihsrak7orgubrnl5lvpcyzb4xf6kc7cd4tfvctucftg6vfqdhphlq.ipfs.dweb.link/
2025-04-24 14:50:23 +02:00
Andrey Vukolov 279589fa78 Pre-master 2025-04-23 18:18:58 +02:00
Adrien Béraud 33f9570ecb adapt for Asio 1.34 2025-04-22 20:02:37 -04:00
Andrey Vukolov 1c1c99974a Added and tested build scenarios for Windows (MSYS2, MSVC static)
- Based on Windows build adjustment code from @novemus
	  (see his magnificient code merge request #716)
	- Determined full-static and dynamic link libraries for
	  Windows if built using MSYS2 or MSVC
	- Built without restinio and llhttp [TODO]
	- Set for automatic fetching and population from the network
	  the following libraries for MSYS2:
		- GnuTLS 3.8.4 for 64-bit Windows (tested for dynamic
		  and static builds)
			- Auto name adjustments for GnuTLS
		- GnuTLS 3.8.9 for 32-bit Windows (untested)
		- cJSON as a dependency for msgpack
		- msgpack 6.1.1
		- jsoncpp 1.9.5
		- libfmt 11.1.2
		- libasio 1.30.2
	  for MSVC:
		- cJSON (used by msgpack in dynamic builds)
		- jsoncpp 1.9.5
		- libfmt 11.1.2
	- Various build scenario fixes for MSVC dynamic builds
	- Added modular codebase for infohash.cpp to avoid header
	  treatment mismatches in MSVC when compiling DLL
	- Added convenience prints in the build scenario
	- Fixed inconvenient usage of pkgconfig in Windows, the
	  link scenarios adjusted accordingly
	- Fixed hardcoded find_library calls
	- Added standard CMake handler for Boost library using
	  BOOST_ROOT variable, including environmental definition
	- Fixed libreadline linkage on POSIX when the default link
	  point is turned off for OPENDHT_TOOLS (Mint Linux)
	- Added versioned handler for CMP0167 policy (from CMake 3.30)
	- Code fixes for compatibility headers in Windows (crypto.cpp,
	  network_utils.h, utils.h)
	- Urgent fix for improper redefinition of _WINNT_VERSION for
	  Windows 10/11
	  (https://github.com/savoirfairelinux/opendht/pull/716#issuecomment-2793129052)
	- Compile definitions fixed for opendht_EXPORTS and OPENDHT_BUILD
	  in build scenario for OPENDHT_TOOLS
	- Urgent fix for GnuTLS version handler in the code (type
	  redefinition in version 3.8.7 and later)
	  https://github.com/savoirfairelinux/opendht/pull/716#issuecomment-2792592951
	- Various fixes for proper dynamic linking in Windows
	- Built and tested in dynamic and static build scenarios under
	  MSYS2 in Windows 10 and Windows 11, proven working. The
	  static build does not seem fully static, the redevelopment
	  of the MSVC build scenario is proposed by @novemus
	- Built and tested in static mode under MSVC/Visual Studio 2022.
	  Proven working
	- Improper usage of the C's free() function is detected in GnuTLS
	  dynamically linked in Windows (shiftmedia-gnutls 3.7.2 to 3.8.7)
	- Added a MSVC-specific source hack to avoid using gnutls_free()
	  function when built in Windows using dynamic link.
	  !!! CAUTION !!!
	  This implementation should be considered as a dirty hack likely
	  leading to memory leaks! The code should be thoroughly tested
	  and refactored to avoid memory leaks, but the true origin of
	  errors is still not revealed [TODO]
	- My respect to @novemus and his works over #716
2025-04-22 14:46:41 +02:00
François-Simon Fauteux-Chapleau c2d8b19380 http: fix service name resolution failure 2025-04-14 22:12:56 -04:00
Adrien Béraud 352e36500c utils: make HexMap constexpr 2025-04-05 09:49:58 -04:00
Adrien Beraud b2860e1731 proxy client: provide result for pushNotificationReceived 2025-02-20 14:13:16 -05:00