906 Commits
Author SHA1 Message Date
Guoqiang Liuandsuch-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
selstaandsuch-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-bermanandsuch-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
selstaandsuch-gitea 01a7c14a82 epee: prevent log injection from malformed HTTP headers
(cherry picked from commit 281c1d41aae7b579fa1307d82622e18abcd038ff)
2026-10-04 18:50:23 -04:00
woodserandsuch-gitea 5fe3caa4d9 wallet2: abort in-flight daemon request on shutdown
(cherry picked from commit 3c0980f5991a3cc27f7b3890cb68251c971a4b07)
2026-10-04 18:50:23 -04:00
selstaandsuch-gitea 16f7dfef75 epee: prevent JSON parser log injection
(cherry picked from commit 1b82d32a2f18efde834531a1be28b0f711a495e6)
2026-10-04 18:50:23 -04:00
j-bermanandsuch-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
selstaandsuch-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 Clagettandsuch-gitea e4d52af5c7 Fix stall issues with p2p
(cherry picked from commit f618ee1136fa11d0611229a81d9c2838cc9db737)
2026-10-04 18:50:22 -04:00
selstaandsuch-gitea af216147b0 p2p: stop buffered dispatch after fatal notifications
(cherry picked from commit f397f3920998aa8f57f86c9539fd720d288c7e18)
2026-10-04 18:50:22 -04:00
weifanglabandsuch-gitea 16ad3eaea8 epee: fix build with openssl 4.0
(cherry picked from commit 0b67da411a5c0baf2f0631b311a3ec71467da1bc)
2026-10-04 18:50:22 -04:00
selstaandsuch-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
selstaandsuch-gitea bcdb7c1075 http: share deterministic header field parser
(cherry picked from commit d2e4cbcda578152d9640a1aafa97a527f48a1380)
2026-10-04 18:50:20 -04:00
selstaandsuch-gitea d171742ed6 p2p: close zone connections before stopping net servers
(cherry picked from commit b7ca9e73f23cfb0ce1e795b2074ad12af56b04e3)
2026-10-04 18:50:20 -04:00
selstaandsuch-gitea 1e17dc299a p2p: make stop signal idempotent
(cherry picked from commit ec60113e09d9fc985b1c35fe1c579ef73c067d91)
2026-10-04 18:50:20 -04:00
alhudzandsuch-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
jeffro256andsuch-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
iuyua9andsuch-gitea a99f104fc0 epee: skip IPv4 TOS option for non-IPv4 peers
(cherry picked from commit 2a6f64d8faad464c9cecc9c317b06f00f96f4578)
2026-10-04 18:50:19 -04:00
ComputeryPonyandsuch-gitea db60cbb939 epee: fix memory leak with readline
(cherry picked from commit e92f9bd2d609b2823c841a4e857fe46f9b7f0ec6)
2026-10-04 18:50:19 -04:00
j-bermanandsuch-gitea b56c56d807 p2p: cleaner connection close()
(cherry picked from commit c5c9420d8cc9b5b44fd6dc177b3cac773e5e1674)
2026-10-04 18:50:19 -04:00
j-bermanandjwinterm bc0b6d8c4a p2p: wait_for on shutdown instead of indefinite wait
(cherry picked from commit bf314b7ab1611c98476265a938163f2966150483)
2026-05-06 10:52:36 -04:00
j-bermanandjwinterm ef41a9677c connection: try-catch handles
(cherry picked from commit 14e333217e968416a521568ed2ef4868bb162b26)
2026-05-05 18:20:53 -04:00
j-bermanandjwinterm e69533337b p2p: fix hanging shutdown
(cherry picked from commit 7bc2d5a42e8462f2a04f71bd59111a863fa9a6d8)
2026-05-05 18:20:52 -04:00
Lee *!* Clagettandjwinterm e16f0a2c28 Cleanup some of the fragmented levin handling
(cherry picked from commit 017c9022d7bbc03484191177228657b14fb09f53)
2026-05-05 18:20:52 -04:00
selstaandjwinterm a3a824d288 abstract_tcp_server2: add missing return
(cherry picked from commit f60b400917a6d2fecc6c03524c70fbd9e033f436)
2026-05-05 18:19:54 -04:00
Lee *!* Clagettandjwinterm 93381db29c Harden HTTP client auth
(cherry picked from commit f355f85e6f7bea4a4f68c7880b2b995a3c225882)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm 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
tobtohtandjwinterm e9fde467bd epee: add missing cstdint include
(cherry picked from commit 7baf2bde6ecad1e13848fdbd9d4db026ca0ff8fc)
2026-05-05 18:19:53 -04:00
j-bermanandjwinterm 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 Choandselsta 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 Germannandtobtoht 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 Germannandtobtoht 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 RyanandLee *!* 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