Commit Graph
660 Commits
Author SHA1 Message Date
orignal c39ce4d87c implement GetNonConnectedPeers. Reconnect timer 2026-08-04 18:18:46 -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 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 b4666898b5 check if socket gets closed before creating sockets pipe. Catch set_option exception 2026-08-01 09:12:18 -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 2c46f85b7a pass port to Host: header if specified in original request 2026-07-30 09:36:58 -04:00
jpk68 d3ea3ca10c libi2pd_client: fix memory safety issues 2026-07-29 19:11:34 -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 c884cdd32c collect outstanding received data even if stream is closed 2026-07-28 22:05:59 -04:00
orignal bb116619b9 return eof if read closed socket 2026-07-28 21:29:40 -04:00
orignal 01240f75ab defer moving stream to destination's thread 2026-07-27 21:56:09 -04:00
orignal 8948bb5e01 defer moving stream to destination's thread 2026-07-27 21:52:44 -04:00
orignal 12de5f0550 use boost::beast for address book updates 2026-07-27 21:21:47 -04:00
orignal 844ecec004 fixed warning 2026-07-27 15:20:35 -04:00
orignal ee64f13e91 separate thead for disk I/O operations 2026-07-27 14:05:59 -04:00
orignal 672f9c0197 handle have message 2026-07-26 21:21:21 -04:00
orignal 2f635b2ce7 send correct numwanted to tracker 2026-07-26 17:31:17 -04:00
orignal 178138e87e info_hash in url format. Host and User-Agent in request 2026-07-26 15:55:30 -04:00
orignal 8101ae4c31 specify params in GET query 2026-07-26 14:13:34 -04:00
orignal bec18de888 correct AsyncReceive timeout 2026-07-25 22:06:11 -04:00
orignal e5d358931d pass trackers list to TorrentsTunnel 2026-07-25 18:43:12 -04:00
orignal 0b72de49b0 Merge pull request #2445 from jpk68/static-analysis
chore: fix issues found through static analysis
2026-07-25 17:57:32 -04:00
jpk68 757f4d1881 chore: fix issues found through static analysis 2026-07-25 16:42:55 -04:00
jpk68 247590afab chore: fix more memory safety issues 2026-07-25 11:34:36 -04:00
jpk68 16c516d2d1 chore: fix several memory safety issues 2026-07-24 23:00:12 -04:00
acetone 82225a5fa4 initialize m_KeepAliveInterval 2026-07-23 21:29:44 +03:00
acetone 972bebb06d refresh remote leaseset on udp ack timeout 2026-07-23 21:12:14 +03:00
acetone 98310bc504 guard against null datagram session in udp ack timer 2026-07-23 21:05:49 +03:00
acetone 2417db307c keep sending on established udp session after ack timeout 2026-07-23 20:59:41 +03:00
acetone 1f0470fc8d retry udp session establishment instead of dropping packets 2026-07-23 20:54:21 +03:00
orignal 92ec218a8d pass bytes_transferred to AsyncSend callback 2026-07-23 11:24:10 -04:00
orignal 07e5379889 pass async_read_some handler directly to AsyncReceive 2026-07-22 22:01:55 -04:00
orignal 3e56fddad3 consolidate multiple buffers from async_write_some to single SendBuffer 2026-07-22 21:34:18 -04:00
orignal db701c7928 moved BoostAsyncStream to BoostStream.h 2026-07-22 14:33:26 -04:00
orignal 5a96f4d7fb request piece. keep-alive 2026-07-21 18:50:44 -04:00
orignal fcd581ec6a hanlders iterator 2026-07-21 18:48:40 -04:00
orignal 858c879b3e don't print read/write erro if socket got closed by other side 2026-07-21 08:26:36 -04:00
orignal 12da23e2f8 use boost::beast to connect to tracker 2026-07-20 15:47:23 -04:00