Commit Graph

205 Commits

Author SHA1 Message Date
parsebulb 39de43dfed Don't preserve session lifetime in handlers
This is an issue because i2pd does not wait for all handlers queued for
execution inside io_context to execute before it's destroyed. Because
these handlers preserve lifetime of IO objects via a shared pointer we
get into a situation where destroying io_context will invoke destructors
on those IO objects which in turn will attempt to access io_context and
the app will crash.

More info here https://github.com/PurpleI2P/i2pd/issues/2354
2026-03-17 13:51:57 +01:00
orignal bc2cdd6c01 update published pq param from config 2026-03-12 20:46:06 -04:00
orignal eb5a808232 handle ssu2.version in config and pq in SSU2 address in RouterInfo 2026-03-12 20:26:29 -04:00
Benson Muite 73623a4793 Replace deadline_timer by steady_timer
Prevent deprecation warnings when building.
2026-03-06 10:55:47 +03:00
orignal 42f07ad6ed send RouterInfo block instead I2NP DatabaseStore after incoming connect 2026-02-19 20:04:20 -05:00
orignal 5860a09108 allow ipv6 through proxy even if local clearnet ipv6 is not available 2026-02-11 14:41:12 -05:00
orignal 07dedc5201 update peer perams from RouterInfo block 2026-02-10 14:18:01 -05:00
orignal d9bba1c7b5 don't build tunnels through connected E routers 2026-02-10 13:22:49 -05:00
orignal de0c5c042a don't communicate with low bandwidth routers of version < 0.9.58 2026-02-08 10:45:47 -05:00
orignal a34e699c0e fixed typo 2026-02-06 15:15:42 -05:00
orignal 9080fcfa4d ban by IP list 2026-02-06 12:58:16 -05:00
orignal 60cc526dda common code to extract routers hashes from param 2026-01-15 19:51:51 -05:00
orignal 1caadf2a3a use std::array instead std::vector for priority 2026-01-12 19:15:05 -05:00
orignal a4839bf2be handle ntcp2.version param in config 2026-01-08 19:56:09 -05:00
orignal d4ec15361f 1 sec more to mark a tunnel slow if proxy 2025-12-11 15:23:39 -05:00
orignal 7bc7cdec36 don't run peer test if limited connectivity 2025-11-18 13:35:32 -05:00
orignal a52f619d6a implement stan mode 2025-11-17 21:46:32 -05:00
orignal d280190822 check if local ipv6 clearnet address is presented 2025-09-20 16:32:16 -04:00
orignal 972c6854bc don't delete trusted routers from netdb 2025-03-10 13:43:21 -04:00
orignal 66a52a17c6 load profile for SSU2 priority only 2025-03-06 16:26:02 -05:00
orignal e8f5efd156 peers cleanup time variance 2025-02-01 09:42:44 -05:00
orignal 1bb5ad22af use std::mt19937 for random. Peer test interval variance 2025-01-23 19:20:20 -05:00
orignal 1e7254dfaa don't delete router's buffer if an update received or connecting 2025-01-22 13:25:11 -05:00
orignal ca0818af7e drop buffer upon peer disconnect 2025-01-22 12:00:37 -05:00
orignal 2857a163e9 check last endpoint only if profile is in memory. postpone profile update when connected 2025-01-21 15:03:25 -05:00
orignal 3995448014 fixed possible crash at shutdown 2024-12-19 14:24:26 -05:00
orignal e76d09e1a1 send tunnel participant data to transport session directly. Implemented TunnelTransportSender 2024-12-15 18:03:31 -05:00
orignal 56145d0f3c bind tunnel gateway to transport session 2024-11-28 21:56:26 -05:00
orignal ffd18baf30 support boost 1.87 2024-11-25 16:00:06 -05:00
orignal 3474538697 replaced boost::asio::io_service by boost::asio:io_context 2024-11-25 10:08:27 -05:00
orignal 29d77113cc memory pool for x25519 keys 2024-11-02 11:20:23 -04:00
orignal b8d61e04f0 generate x25519 keys more often 2024-11-01 14:46:13 -04:00
orignal 2419f52af4 fixed potential race condition 2024-10-31 15:01:19 -04:00
orignal b2a10ac82b don't update found router again in RequestComplete 2024-10-30 22:00:12 -04:00
orignal 9bc595a9a2 eliminate extra copy 2024-10-29 08:41:59 -04:00
orignal 4c90a88b85 eliminate extra copy of I2NP messages list 2024-10-28 21:10:30 -04:00
orignal 23e66671c2 intermediate queue for transport sessions. use std::list instead std::vector for multiple I2NP messages 2024-10-28 20:36:50 -04:00
orignal 500afe745f use min hole punch interval for connection attempts 2024-10-24 18:49:11 -04:00
orignal 26901e2945 try recently connected SSU2 address if no other transports found 2024-10-23 20:39:00 -04:00
orignal 8d1c186665 limited connectivity mode 2024-09-07 16:25:26 -04:00
orignal e7423b1ffc save timestamp from epoch instead local time to profiles 2024-08-25 19:07:01 -04:00
orignal 3720a5fce3 don't select same peer too often 2024-08-19 15:51:56 -04:00
orignal 0df895b6a7 check minimal router version for connected peer selection 2024-08-19 14:39:07 -04:00
orignal 32ab95478e check crypto type and congestion of connected peer for tunnel 2024-08-18 18:34:28 -04:00
orignal 22dabfd79e use unordered_map for excluded routers. don't request to self 2024-05-15 13:31:31 -04:00
orignal b91f5a7430 fixed race condition on stop 2024-05-03 20:38:57 -04:00
orignal 8fe989050e use share_ptr to store peers 2024-04-27 08:18:49 -04:00
orignal 8b7941c4ce fixed typo 2024-04-23 18:21:25 -04:00
orignal de673464d1 don't try to connect directy by SSU2 to unnconfirmed router if direct NTCP2 is presented 2024-04-23 11:40:11 -04:00
orignal c5a1e8cac8 give preference to direct connection 2024-04-19 19:12:29 -04:00