Commit Graph
9424 Commits
Author SHA1 Message Date
orignal 314af9e4ba up to 4 pieces in send buffer 2026-08-08 18:33:56 -04:00
orignal e32e694a83 common HKDF context for ratchets tags 2026-08-08 16:52:28 -04:00
orignal cfcc88029c send intersted when have message received and notinterested if no more blocks to request 2026-08-08 15:45:03 -04:00
orignal 6b100353ba generate msgid from instead RAND_bytes 2026-08-08 14:38:11 -04:00
orignal 60678683ab Merge pull request #2464 from freeacetone/udp-tunnel-performance
Udp tunnel performance (2)
2026-08-08 11:44:32 -04:00
orignal 65c210eb4a send interested/notinterested after receiving have message 2026-08-08 11:31:41 -04:00
acetone 72b8ef3eb4 configurable udp tunnel window 2026-08-08 17:56:59 +03:00
acetone 9d320d77eb datagram tunnel window and ack policy 2026-08-08 17:56:59 +03:00
orignal 7547d675a2 Rename added 2026-08-08 08:32:29 -04:00
orignal 682ce8a270 reset num requests and last requested peer after choke message received 2026-08-08 07:55:49 -04:00
orignal 4ac72b18c8 try to request block from last piece first. Invalidate piece is hash verification failed 2026-08-07 21:52:55 -04:00
orignal e9bc797ba8 try to request piece receive in have message 2026-08-07 17:38:48 -04:00
orignal d717209125 delete piece's data from memory after 1 minute. Request different pieces from different connections 2026-08-07 14:22:53 -04:00
orignal bc9aba65c8 fixed build error 2026-08-06 20:38:27 -04:00
orignal 77f4f22df6 queue up and send piece messages one by one 2026-08-06 18:51:40 -04:00
orignal bff47aff7c cancel ack send timer on terminate 2026-08-06 07:10:58 -04:00
orignal c0f649bbf8 check if torrent complete before requests 2026-08-05 20:36:00 -04:00
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