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
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
075cdc1850
allow ipv6 binding for Haiku because IPV6_V6ONLY has been implemented since R1/Beta6
2026-07-30 08:05:41 -04:00
jpk68
b1d0bc34c1
ntcp2: fix memory safety issues
2026-07-29 18:34:52 -04:00
orignal
e5a4824a2e
print correct negative time difference
2026-07-27 21:28:44 -04:00
orignal
8e64f99de4
fixed few possible race conditions
2026-06-04 13:52:08 -04:00
Dimitris Apostolou
2f15da3d5a
fix typos
2026-03-28 09:19:33 +02:00
orignal
e291943e7b
switch to non-PQ with a probability of one in four
2026-03-25 20:50:57 -04:00
orignal
9a881e7753
show protocol version for post quantum transport sessions
2026-03-22 12:24:59 -04:00
orignal
3697499b25
max non-PQ message size 944 if peer >= 0.9.69
2026-02-27 13:24:59 -05:00
orignal
085babd1ea
avoid possible double termination. Use atomic swap
2026-02-26 15:38:45 -05:00
orignal
6a859cdb4e
schedule RouterInfo resend time after session established
2026-02-26 08:47:22 -05:00
orignal
8ab7cfa2a6
max padding size is double message size for post-quantum crypto
2026-02-24 10:40:52 -05:00
orignal
2724ed4b77
send longer padding when applicable
2026-02-23 19:35:22 -05:00
orignal
7b311bedde
separate RNG for establisher thread
2026-02-19 17:19:59 -05:00
orignal
07dedc5201
update peer perams from RouterInfo block
2026-02-10 14:18:01 -05:00
orignal
f87c42017c
reduce termination timeout twice if connected from G router
2026-02-09 20:30:51 -05:00
orignal
52dffb81fa
check version before trying to add to NetDb
2026-02-08 11:29:35 -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
9080fcfa4d
ban by IP list
2026-02-06 12:58:16 -05:00
orignal
3423f9bc39
fixed typo
2026-01-19 22:28:58 -05:00
orignal
2ad30e5776
replace deadline_timer by steady_timer
2026-01-12 22:30:44 -05:00
orignal
dc061ad3ae
always set verson to 2 in SessionRequest
2026-01-12 18:49:13 -05:00
orignal
883f0bbe31
common buffer for SessionRequest and SessionCreated
2026-01-09 20:42:18 -05:00
orignal
86d07703b6
choose version for handshake on Alice side
2026-01-09 13:44:23 -05:00
orignal
a4839bf2be
handle ntcp2.version param in config
2026-01-08 19:56:09 -05:00
orignal
1737674da7
MixHash right after encryption/decryption for SessionCreated and SessionConfirmed
2026-01-08 16:06:40 -05:00
orignal
3b845b8880
post quantum support for incoming NTCP2 connections
2026-01-08 12:44:51 -05:00
orignal
d11d312bd5
check if post quantum requested in SessionRequest message
2026-01-01 19:40:12 -05:00
orignal
69c49dcd44
apply padding in establisher thread
2025-12-27 19:14:33 -05:00
orignal
2ddd4db1a3
handle post quantum frame in SessionCreated message
2025-12-27 17:38:46 -05:00
orignal
e587513cfc
apply MixHash right after Encrypt/Decrypt operations
2025-12-27 11:42:19 -05:00
orignal
4277fcc0c0
Post quantum SessionRequest message
2025-12-26 14:27:28 -05:00
orignal
db82903bb0
don't set IPV6_V6ONLY option for ipv6 socket for Haiku
2025-09-19 16:04:32 -04:00
orignal
0d278d2ae5
probing resistance
2025-05-03 13:09:06 -04:00
orignal
f6abbe5908
Use noise state Encrypt/Decrypt operations
2025-04-08 14:39:46 -04:00
orignal
39e07ac265
don't load router profile in NTCP2 or SSU2 thread when check for duplicates
2025-01-20 11:58:33 -05:00
orignal
7497741846
fixed possible crash at shutdown
2024-12-18 14:22:05 -05:00
orignal
b4bcd9914a
show next peer and connectivity on transit tunnels page
2024-12-16 19:49:14 -05:00
orignal
3534b9c499
don't create EVP_CIPHER_CTX for each AEAD/Chacha20/Poly1305 message
2024-12-09 20:59:59 -05:00
orignal
f23a7f569b
pass iv to AES Encrypt/Decrypt directly. aes-test added
2024-12-08 11:08:17 -05:00
orignal
786da057f2
always use openssl for AES
2024-12-06 20:25:22 -05:00
orignal
e996db03c0
process SessionConfirmed in establisher's thread
2024-12-05 20:57:40 -05:00
orignal
f79a2e81ff
calculate data phase keys after verification
2024-12-04 18:36:57 -05:00
orignal
7b0ff2850c
close session if x25519 fails
2024-12-01 16:53:08 -05:00
orignal
8b9f427aa4
handle session handshakes in separate thread
2024-11-27 18:31:58 -05:00
orignal
ffd18baf30
support boost 1.87
2024-11-25 16:00:06 -05:00
orignal
f04048717d
cleanup messages to send if session was terminated
2024-10-28 21:34:33 -04:00