Commit Graph
9407 Commits
Author SHA1 Message Date
orignal 262f183126 one connection to remote I2P address per torrent. Close connection if no data or keepalive 2026-08-05 19:01:36 -04:00
orignal 5535a17330 show Torrents tunnels on I2P tunnels page 2026-08-05 17:19:49 -04:00
orignal 50b4c3d8f1 put addressbook update with boost::beast back 2026-08-05 16:53:06 -04:00
orignal 797deb77b9 open file in correct mode to update piece 2026-08-05 14:11:29 -04:00
orignal 72aeea494e don't invoke completion handler within async function 2026-08-05 10:09:53 -04:00
orignal 346c9c0cd0 rollback to old implemntation without boost::beast 2026-08-05 07:58:26 -04:00
orignal adda8acf24 restore bitfield from .resume file 2026-08-04 22:28:41 -04:00
orignal 0f847655ee save partially donwloaded torrent to .part/.resume files 2026-08-04 21:24:47 -04:00
orignal c39ce4d87c implement GetNonConnectedPeers. Reconnect timer 2026-08-04 18:18:46 -04:00
orignal 3ae36ee350 don't save session with saved packet 2026-08-04 14:43:23 -04:00
orignal 6246c4f9d3 close stream after HTTP response 2026-08-04 09:35:51 -04:00
orignal 57874dafb6 disseminate have message once piece complete 2026-08-03 21:38:59 -04:00
orignal 935f3f9878 send correct index and offset in request 2026-08-03 19:40:11 -04:00
orignal 95092d3fd2 fixed build error 2026-08-03 17:44:57 -04:00
orignal db484aabb3 Merge pull request #2459 from bimawa/fix/openssl-crash-socks5
fix: cancel pending socket ops before close to prevent macOS crash
2026-08-03 17:37:11 -04:00
orignal 9dc99b9ecc multiple requests at the time 2026-08-03 17:35:37 -04:00
Maxim Bunkov e16160b74d fix: cancel pending socket ops before close to prevent macOS crash
On macOS (kqueue), boost::asio throws an exception from pending
async_write/async_read handlers after the socket is closed.
This reaches io_service::run() as an uncaught exception and
terminates the process.

Call m_Socket.cancel() before shutdown/close in NTCP2, SAM,
I2PTunnel, and BOB so pending operations complete with
operation_aborted on a live socket.

Crash log (macOS 26, i2pd 2.61):
  libc++abi: terminating due to uncaught exception of type
  boost::wrapexcept<boost::system::system_error>:
  write_some: Bad file descriptor [system:9]

This is a kqueue-specific issue. On Linux (epoll), close() alone
cancels pending operations correctly. The fix is defensive on Linux
and required on macOS.
2026-08-04 02:04:30 +05:00
orignal d053ef4021 don't try to get data if receive timeout 2026-08-03 16:29:14 -04:00
orignal 73d2ff7f44 send inetersted message after receiving bitfield 2026-08-03 11:59:21 -04:00
orignal ffd3101241 handle choke and unchoke messages 2026-08-02 22:11:02 -04:00
orignal 1a4e820379 request next block 2026-08-02 21:43:14 -04:00
orignal ee50116dbc connect to peers and send keep-alive 2026-08-02 15:13:12 -04:00
orignal 21181b2deb optional 'keys' param for torrents tunnel 2026-08-02 15:10:56 -04:00
orignal 3bcbab75e4 fixed typo 2026-08-01 21:19:14 -04:00
orignal f6625e7c21 don't accept NTCP2 version 3 and 5 if LibreSSL 2026-08-01 20:19:35 -04:00
orignal 867e977457 fallback to version 2 if peer is version 3 or 5 for LibreSSL because this post-quantum types are not supported 2026-08-01 18:44:03 -04:00
orignal b4666898b5 check if socket gets closed before creating sockets pipe. Catch set_option exception 2026-08-01 09:12:18 -04:00
orignal b0b4051595 complete AsyncRead right away if stream is closed 2026-07-31 17:56:49 -04:00
orignal 0066db4119 create error code based on stream status 2026-07-31 17:17:49 -04:00
orignal 07fb13c811 read torrents tunnel 2026-07-30 20:21:27 -04:00
orignal c84d0c0a94 explicitly cast 32-bits streamID to 16-bits port 2026-07-30 18:22:00 -04:00
orignal 5b080f8d9b removed ECDSA blinding 2026-07-30 17:51:39 -04:00
orignal 523b9ce5f7 Merge pull request #2456 from jpk68/memory-bugs-3
chore: fix memory safety issues
2026-07-30 17:14:18 -04:00
jpk68 77c2f266b8 chore: fix memory safety issues 2026-07-30 17:01:45 -04:00
orignal 2c46f85b7a pass port to Host: header if specified in original request 2026-07-30 09:36:58 -04:00
orignal 075cdc1850 allow ipv6 binding for Haiku because IPV6_V6ONLY has been implemented since R1/Beta6 2026-07-30 08:05:41 -04:00
orignal 57ea80fdbd Merge pull request #2453 from jpk68/ntcp2-issues
ntcp2: fix memory safety issues
2026-07-30 07:06:54 -04:00
orignal 88c7803f69 Merge pull request #2454 from jpk68/length-checks
libi2pd: add missing length checks
2026-07-30 07:05:38 -04:00
orignal 2a4591576f Merge pull request #2455 from jpk68/client-memory
libi2pd_client: fix memory safety issues
2026-07-30 07:02:17 -04:00
jpk68 d3ea3ca10c libi2pd_client: fix memory safety issues 2026-07-29 19:11:34 -04:00
jpk68 b148455295 libi2pd: add missing length checks 2026-07-29 19:07:39 -04:00
jpk68 b1d0bc34c1 ntcp2: fix memory safety issues 2026-07-29 18:34:52 -04:00
orignal 6d47cca978 receive timeout for BoostAsyncStream 2026-07-29 18:03:44 -04:00
orignal 4b507cda96 don't send eof with reveived data 2026-07-29 06:50:21 -04:00
orignal da5b063420 fixed possible overflow with negative value 2026-07-28 22:09:03 -04:00
orignal c884cdd32c collect outstanding received data even if stream is closed 2026-07-28 22:05:59 -04:00
orignal e6088eb30f let pending operations complete when stream received FIN 2026-07-28 21:47:03 -04:00
orignal c49ca9cbdd pass boost::asio::error::eof if stream got terminated 2026-07-28 21:43:56 -04:00
orignal bb116619b9 return eof if read closed socket 2026-07-28 21:29:40 -04:00
orignal 4d072c1d57 pass boost::asio::error::eof if stream get closed 2026-07-28 18:40:03 -04:00