Guoqiang Liu and such-gitea
6d9aca92f1
net: detect half-closed sockets before connection reuse
...
Detect peer EOF and TLS closure before reusing idle connections. Make
disconnect idempotent while preserving buffered data and pending operation
lifetimes.
Keep the release branch's multi-byte recv_n behavior, and cover partial EOF,
socket modes, and TLS shutdown with loopback regression tests. Use fixed
test certificates and retain compatibility with the release branch's
Google Test version.
Co-authored-by: woodser <13068859+woodser@users.noreply.github.com >
(cherry picked from commit 096abdaa22b71ade9ca673ed8012c500cecb58d3)
2026-10-04 18:50:24 -04:00
selsta and such-gitea
7e797d062a
epee: remove obsolete MyMonero conversion
...
Also initialize the temp var used when loading scalar arrays.
(cherry picked from commit 7ba5e2cca91497155bd0a72a5e00059a27fa7e38)
2026-10-04 18:50:24 -04:00
j-berman and such-gitea
16d9fb5336
p2p: don't reset timeout timer for handshakes
...
The handshake timeout should just be an absolute timeout, we don't
care about partial messages received during the handshake.
(cherry picked from commit c7c43686878166cd0b93bed0cc712c8dd9845c89)
2026-10-04 18:50:24 -04:00
selsta and such-gitea
01a7c14a82
epee: prevent log injection from malformed HTTP headers
...
(cherry picked from commit 281c1d41aae7b579fa1307d82622e18abcd038ff)
2026-10-04 18:50:23 -04:00
woodser and such-gitea
5fe3caa4d9
wallet2: abort in-flight daemon request on shutdown
...
(cherry picked from commit 3c0980f5991a3cc27f7b3890cb68251c971a4b07)
2026-10-04 18:50:23 -04:00
selsta and such-gitea
16f7dfef75
epee: prevent JSON parser log injection
...
(cherry picked from commit 1b82d32a2f18efde834531a1be28b0f711a495e6)
2026-10-04 18:50:23 -04:00
j-berman and such-gitea
f2a8c47410
p2p: use a bool for send()
...
Identified by @selsta
Callers can otherwise misinterpret int -1 as truthy success,
e.g. see make_payload_send_txs
(cherry picked from commit 9bf193728bb11beb9c40e06a0d48d1c697fe7a84)
2026-10-04 18:50:22 -04:00
selsta and such-gitea
f26ac02df9
p2p, rpc: group public IPv6 connection limits by /64
...
(cherry picked from commit f277d328cf1f7e64423b5eb7dc0e21649f71e47a)
2026-10-04 18:50:22 -04:00
Lee Clagett and such-gitea
e4d52af5c7
Fix stall issues with p2p
...
(cherry picked from commit f618ee1136fa11d0611229a81d9c2838cc9db737)
2026-10-04 18:50:22 -04:00
selsta and such-gitea
af216147b0
p2p: stop buffered dispatch after fatal notifications
...
(cherry picked from commit f397f3920998aa8f57f86c9539fd720d288c7e18)
2026-10-04 18:50:22 -04:00
weifanglab and such-gitea
16ad3eaea8
epee: fix build with openssl 4.0
...
(cherry picked from commit 0b67da411a5c0baf2f0631b311a3ec71467da1bc)
2026-10-04 18:50:22 -04:00
selsta and such-gitea
7d1d93d168
epee: avoid bad_weak_ptr during connection teardown
...
foreach_connection() can race with connection destruction while the
protocol handler remains in the raw-pointer map. Use the non-throwing
weak_from_this().lock() in add_ref() and treat expired connections as
unavailable.
This is an interim mitigation pending the broader connection lifetime
fix in PR 7345.
(cherry picked from commit 146f801063b85e23b635c235100cc241e4ab626a)
2026-10-04 18:50:21 -04:00
selsta and such-gitea
bcdb7c1075
http: share deterministic header field parser
...
(cherry picked from commit d2e4cbcda578152d9640a1aafa97a527f48a1380)
2026-10-04 18:50:20 -04:00
selsta and such-gitea
d171742ed6
p2p: close zone connections before stopping net servers
...
(cherry picked from commit b7ca9e73f23cfb0ce1e795b2074ad12af56b04e3)
2026-10-04 18:50:20 -04:00
selsta and such-gitea
1e17dc299a
p2p: make stop signal idempotent
...
(cherry picked from commit ec60113e09d9fc985b1c35fe1c579ef73c067d91)
2026-10-04 18:50:20 -04:00
alhudz and such-gitea
692066eb88
fix off-by-one over-read in match_string2 unicode escape parsing
...
(cherry picked from commit dedae5272d9d311464e8b25a5c57701591ac4eb1)
2026-10-04 18:50:20 -04:00
jeffro256 and such-gitea
35a6aabcee
contrib: fix unaligned&aliased levin buffer reads
...
Co-authored-by: selsta <selsta@users.noreply.github.com >
(cherry picked from commit 98b350f7a15997f5866c413c16b07e2ee6348922)
2026-10-04 18:50:20 -04:00
iuyua9 and such-gitea
a99f104fc0
epee: skip IPv4 TOS option for non-IPv4 peers
...
(cherry picked from commit 2a6f64d8faad464c9cecc9c317b06f00f96f4578)
2026-10-04 18:50:19 -04:00
ComputeryPony and such-gitea
db60cbb939
epee: fix memory leak with readline
...
(cherry picked from commit e92f9bd2d609b2823c841a4e857fe46f9b7f0ec6)
2026-10-04 18:50:19 -04:00
j-berman and such-gitea
b56c56d807
p2p: cleaner connection close()
...
(cherry picked from commit c5c9420d8cc9b5b44fd6dc177b3cac773e5e1674)
2026-10-04 18:50:19 -04:00
j-berman and jwinterm
bc0b6d8c4a
p2p: wait_for on shutdown instead of indefinite wait
...
(cherry picked from commit bf314b7ab1611c98476265a938163f2966150483)
2026-05-06 10:52:36 -04:00
j-berman and jwinterm
ef41a9677c
connection: try-catch handles
...
(cherry picked from commit 14e333217e968416a521568ed2ef4868bb162b26)
2026-05-05 18:20:53 -04:00
j-berman and jwinterm
e69533337b
p2p: fix hanging shutdown
...
(cherry picked from commit 7bc2d5a42e8462f2a04f71bd59111a863fa9a6d8)
2026-05-05 18:20:52 -04:00
Lee *!* Clagett and jwinterm
e16f0a2c28
Cleanup some of the fragmented levin handling
...
(cherry picked from commit 017c9022d7bbc03484191177228657b14fb09f53)
2026-05-05 18:20:52 -04:00
selsta and jwinterm
a3a824d288
abstract_tcp_server2: add missing return
...
(cherry picked from commit f60b400917a6d2fecc6c03524c70fbd9e033f436)
2026-05-05 18:19:54 -04:00
Lee *!* Clagett and jwinterm
93381db29c
Harden HTTP client auth
...
(cherry picked from commit f355f85e6f7bea4a4f68c7880b2b995a3c225882)
2026-05-05 18:19:53 -04:00
j-berman and jwinterm
0544146ff3
p2p: connection patches
...
- Make sure the server sends a complete response when the client
includes the "Connection: close" header.
- Make sure the server terminates in `m_strand` to avoid
concurrent socket closure and ops processing.
(cherry picked from commit ee9e4a49baae0319f6cab543979e221f251339a3)
2026-05-05 18:19:53 -04:00
tobtoht and jwinterm
e9fde467bd
epee: add missing cstdint include
...
(cherry picked from commit 7baf2bde6ecad1e13848fdbd9d4db026ca0ff8fc)
2026-05-05 18:19:53 -04:00
j-berman and jwinterm
7551a0dc04
Fix logging deadlock
...
(cherry picked from commit a83a46d60059a063ec953ba15f4cdcc2b3874440)
2026-05-05 18:19:53 -04:00
selsta
7e3edc29c6
epee: only parse valid port
...
Reported by hacksandhops and Ada Logic.
2025-08-31 00:13:55 +02:00
tobtoht
22fc8f9a09
Merge pull request #10048
...
e6f43df epee: include math header for upcoming Boost 1.89 (Michael Cho)
2025-08-21 16:28:02 +00:00
Michael Cho and selsta
e6f43df56a
epee: include math header for upcoming Boost 1.89
2025-08-20 18:06:18 +02:00
Lee *!* Clagett
e23b759b37
Skip ping connections in outgoing count
2025-08-19 17:16:05 -04:00
tobtoht
3176fbd7fb
Merge pull request #9956
...
9f3d96e Add check for exception in tcp accept handler (Lee *!* Clagett)
2025-07-07 19:38:55 +00:00
tobtoht
b01fb18012
Merge pull request #9909
...
f968150 epee: fix string_tools on Windows (0xFFFC0000)
2025-06-14 18:59:23 +00:00
Lee *!* Clagett
9f3d96eba6
Add check for exception in tcp accept handler
2025-06-12 17:48:49 -04:00
jeffro256
e458bc0fad
msys2 build: include int headers
2025-05-06 14:18:02 -05:00
0xFFFC0000
f968150849
epee: fix string_tools on Windows
2025-04-22 14:26:27 +01:00
Bastian Germann and tobtoht
33e7943dfd
epee: Drop unused in-tree MD5
...
The RSA-MD licensed implementation that originated from RFC 1321 and got
into epee via Cyrus SASL and libEtPan! is not a good fit for epee, which
also links to the GPL licensed readline. RSA-MD has an advertisement
clause that is known to be incompatible with GPL.
2025-03-14 14:00:36 +01:00
Bastian Germann and tobtoht
fe1a10d70e
Replace in-tree MD5 with OpenSSL
...
This uses OpenSSL's non-deprecated EVP digest facility to calculate MD5
in HTTP digest authentication.
2025-03-14 14:00:16 +01:00
Lee *!* Clagett
4acc0ea41f
Limit scope of TCP checks to incoming only
2025-02-26 13:09:20 -05:00
woodser
322953e626
assign default port for http and https clients
2025-02-17 08:14:25 -05:00
Lee *!* Clagett
01bcd52924
Fix build with boost ASIO 0.87. Support boost 1.66+
2025-02-14 13:29:57 -05:00
Lee *!* Clagett
13ff355cf6
Set response limits on http server connections
2025-02-14 00:21:05 -05:00
Jeffrey Ryan and Lee *!* Clagett
89fa3ed68a
epee: update 'http_server_handlers_map2.h' macros to use fully qualified names
...
quick patch which fixes the issue where if you use some macros from `http_server_handlers_map2.h` you have to be in the `epee` namespace or it doesn't compile. Now can remove `using namespace epee;` from header file `core_rpc_server.h`, which caused a couple of name qualifying mistakes
2025-02-13 16:24:48 -05:00
tobtoht
00e582a2b1
Merge pull request #9460
...
0cd74568d Cleanup TCP throttling code (performance) + move connection checks (Lee *!* Clagett)
2025-01-22 22:47:10 +00:00
iamamyth
36c5987156
Fix get_database_size on Windows
...
Replace all calls to epee::file_io::get_file_size with
boost::filesystem::file_size in order to avoid lossy conversions from
paths to strings, which tend to break filename resolution. This commit
fixes a bug on Windows where the get_info RPC call reported a zero
database size because BlockchainLMBD::get_database_size returned zero.
2025-01-14 13:26:39 -08:00
luigi1111
f498b4d10d
Merge pull request #9615
...
13df862 contrib: force (de)serialization to create params section incase there is none. Co-authored-by: Boog900 <boog900@tutanota.com > (0xFFFC0000)
2024-12-23 11:04:30 -05:00
luigi1111
d0ba44cc58
Merge pull request #9607
...
8dfb366 epee: partially revert c56ee140 to fix linking errors (jeffro256)
2024-12-23 11:03:29 -05:00
luigi1111
e2fcb9141f
Merge pull request #9584
...
74c3134 Fix memcpy in byte_slice constructor (Lee *!* Clagett)
2024-12-23 10:59:22 -05:00