Commit Graph
71 Commits
Author SHA1 Message Date
jeffro256 edea8505db general: replace auto_scope_leave_caller with scope_guard
And replace unused inclusions of misc_language.h
2026-07-15 19:54:58 -05:00
jeffro256andselsta 7704a194f0 contrib: fix unaligned&aliased levin buffer reads
Co-authored-by: selsta <selsta@users.noreply.github.com>
2026-05-21 21:16:45 -05:00
tobtoht 49f3fabbf4 Merge pull request #10382
742c629 p2p: fix hanging shutdown (j-berman)
2026-04-07 09:01:30 +00:00
tobtoht 99addbcc91 Merge pull request #10357
3e2c837 Cleanup some of the fragmented levin handling (Lee *!* Clagett)
2026-04-04 18:44:46 +00:00
j-berman 742c62928a p2p: fix hanging shutdown 2026-03-25 13:27:44 -07:00
Lee *!* Clagett 3e2c837b26 Cleanup some of the fragmented levin handling 2026-03-11 13:37:22 -04:00
Lee *!* Clagett 44869250bd Transition asio::deadline_timer to asio::steady_timer 2026-02-17 11:28:57 -05:00
jeffro256 8af33c71cf epee: syncobj: replace shims with Boost classes
a. `critical_section` is functionally identical to a `boost::recursive_mutex`
b. `critical_region_t` is functionally identical to a `boost::unique_lock`
c. remove some vestigial definitons `g_test_dbg_lock_sleep` as a variable
2025-04-01 11:09:26 -05:00
Lee *!* Clagett 4344f97255 Fix build with boost ASIO 1.87. Support boost 1.66+ 2025-01-06 18:05:25 -05:00
Lee Clagett 4f3a54b2a0 Remove invoke function in levin handler 2022-09-26 16:47:18 +00:00
Jeffrey 441c860738 Merge functionality of misc_os_dependent into time_helper.h
Actions:
1. Remove unused functions from misc_os_dependent.h
2. Move three remaining functions, get_gmt_time, get_ns_count, and get_tick_count into time_helper.h
3. Remove unused functions from time_helper.h
4. Refactor get_ns_count and get_internet_time_str and get_time_interval_string
5. Remove/add includes as needed

Relevant commits on the old PR:
a9fbe52b02
9a59b131c4
7fa9e2817d
2022-04-18 09:55:21 -05:00
Jeffrey 17772ef53e Eliminate dependence on boost::interprocess #8223
In this repo, `boost::interprocess` was being used soley to make `uint32_t` operations atomic. So I replaced each instance of
`boost::interprocess::ipcdetail::atomic(...)32` with `std::atomic` methods. I replaced member declarations as applicable. For example,
when I needed to change a `volatile uint32_t` into a `std::atomic<uint32_t>`. Sometimes, a member was being used a boolean flag, so
I replaced it with `std::atomic<bool>`.

You may notice that I didn't touch `levin_client_async.h`. That is because this file is entirely unused and will be deleted in PR monero-project#8211.

Additional changes from review:
* Make some local variables const
* Change postfix operators to prefix operators where value was not need
2022-03-30 13:18:32 -05:00
Lee Clagett 679d05567d Remove payload copy in all outgoing p2p messages 2021-01-19 02:22:32 +00:00
luigi1111 e45619e61e Revert "Merge pull request #7136"
This reverts commit 63c7ca07fb, reversing
changes made to 2218e23e84.
2021-04-16 13:52:44 -05:00
luigi1111 63c7ca07fb Merge pull request #7136
23aae55 Remove payload copy in all outgoing p2p messages (Lee Clagett)
2021-04-16 12:45:30 -05:00
anon 2935a0c479 async_protocol_handler_config: fix deadlock 2021-03-12 11:59:06 +00:00
anon 80125a2f77 async_protocol_handler_config: remove connection correctly 2021-02-19 22:27:29 +00:00
luigi1111 33004ded62 Merge pull request #7343
545b982 Remove unnecessary atomic operations in levin code (Lee Clagett)
2021-02-18 14:02:52 -05:00
anonandselsta df2f00f44d boosted_tcp_server: fix connection lifetime 2021-01-19 18:15:30 +01:00
Lee Clagett 545b9825d6 Remove unnecessary atomic operations in levin code 2021-01-19 04:44:03 +00:00
Lee Clagett 23aae5571b Remove payload copy in all outgoing p2p messages 2021-01-16 22:53:28 +00:00
moneromooo-monero b652d598d1 add a max levin packet size by command type 2021-01-03 14:07:45 +00:00
Lee Clagett 61b6e4cc67 Add aggressive restrictions to pre-handshake p2p buffer limit 2020-12-17 00:36:10 +00:00
Lee Clagett 7414e2bac1 Change epee binary output from std::stringstream to byte_stream 2020-10-10 15:28:40 +00:00
moneromooo-monero 21fe6a289b p2p: fix frequent weak_ptr exception on connection
When a handshake fails, it can fail due to timeout or destroyed
connection, in which case the connection will be, or already is,
closed, and we don't want to do it twice.
Additionally, when closing a connection directly from the top
level code, ensure the connection is gone from the m_connects
list so it won't be used again.

AFAICT this is now clean in netstat, /proc/PID/fd and print_cn.

This fixes a noisy (but harmless) exception.
2020-03-31 20:29:41 +00:00
moneromooo-monero e48dcb7a01 levin: armour against some "should not happen" case
If adding a response handler after the protocol is released,
they could never be cancelled again, and would end up keeping
a ref that never goes away
2019-10-15 10:30:08 +00:00
luigi1111 1b93cb74bb Merge pull request #5824
2a41dc0 epee: fix connections not being properly closed in some instances (moneromooo-monero)
2019-09-04 09:40:21 -05:00
moneromooo-monero 2a41dc0453 epee: fix connections not being properly closed in some instances
Fixed by Fixed by crCr62U0
2019-08-19 22:09:55 +00:00
Lee Clagett 3b24b1d082 Added support for "noise" over I1P/Tor to mask Tx transmission. 2019-07-17 14:22:37 +00:00
Lee Clagett bdfc63ae4d Add ref-counted buffer byte_slice. Currently used for sending TCP data. 2019-07-16 16:30:35 +00:00
moneromooo-monero 098aadf084 p2p: close the right number of connections on setting max in/out peers 2019-06-19 11:49:36 +00:00
moneromooo-monero edbae2d05b levin_protocol_handler_async: tune down preallocation a fair bit
It can allocate a lot when getting a lot of connections
(in particular, the stress test on windows apparently pushes
that memory to actual use, rather than just allocated)
2019-04-22 22:35:32 +00:00
Riccardo Spagni 846362842c Merge pull request #4976
85665003 epee: better network buffer data structure (moneromooo-monero)
2019-01-16 19:04:22 +02:00
luigi1111 d8c03191ca Merge pull request #4933
3cf85f0 Changed RECIEVED to RECEIVED in log messages. (normoes)
2018-12-31 15:33:18 -06:00
moneromooo-monero 85665003a7 epee: better network buffer data structure
avoids pointless allocs and memcpy
2018-12-23 16:46:07 +00:00
moneromooo-monero 9c923bad9b epee: fix network packet header field endianness 2018-12-04 15:14:32 +00:00
Norman Moeschter 3cf85f0e83 Changed RECIEVED to RECEIVED in log messages. 2018-12-04 07:27:08 +01:00
moneromooo-monero 00901e9c93 epee: initialize a few data members where it seems to be appropriate 2018-10-02 17:28:50 +00:00
Riccardo Spagni effcbf2060 Merge pull request #4459
bcf3f6af fuzz_tests: catch unhandled exceptions (moneromooo-monero)
3ebd05d4 miner: restore stream flags after changing them (moneromooo-monero)
a093092e levin_protocol_handler_async: do not propagate exception through dtor (moneromooo-monero)
1eebb82b net_helper: do not propagate exceptions through dtor (moneromooo-monero)
fb6a3630 miner: do not propagate exceptions through dtor (moneromooo-monero)
2e2139ff epee: do not propagate exception through dtor (moneromooo-monero)
0749a8bd db_lmdb: do not propagate exceptions in dtor (moneromooo-monero)
1b0afeeb wallet_rpc_server: exit cleanly on unhandled exceptions (moneromooo-monero)
418a9936 unit_tests: catch unhandled exceptions (moneromooo-monero)
ea7f9543 threadpool: do not propagate exceptions through the dtor (moneromooo-monero)
6e855422 gen_multisig: nice exit on unhandled exception (moneromooo-monero)
53df2deb db_lmdb: catch error in mdb_stat calls during migration (moneromooo-monero)
e67016dd blockchain_blackball: catch failure to commit db transaction (moneromooo-monero)
661439f4 mlog: don't remove old logs if we failed to rename the current file (moneromooo-monero)
5fdcda50 easylogging++: test for NULL before dereference (moneromooo-monero)
7ece1550 performance_test: fix bad last argument calling add_arg (moneromooo-monero)
a085da32 unit_tests: add check for page size > 0 before dividing (moneromooo-monero)
d8b1ec8b unit_tests: use std::shared_ptr to shut coverity up about leaks (moneromooo-monero)
02563bf4 simplewallet: top level exception catcher to print nicer messages (moneromooo-monero)
c57a65b2 blockchain_blackball: fix shift range for 32 bit archs (moneromooo-monero)
2018-09-29 22:20:38 +02:00
Riccardo Spagni f4a6bc79d9 Merge pull request #3226
e4646379 keccak: fix mdlen bounds sanity checking (moneromooo-monero)
2e3e90ac pass large parameters by const ref, not value (moneromooo-monero)
61defd89 blockchain: sanity check number of precomputed hash of hash blocks (moneromooo-monero)
9af6b2d1 ringct: fix infinite loop in unused h2b function (moneromooo-monero)
8cea8d0c simplewallet: double check a new multisig wallet is multisig (moneromooo-monero)
9b98a6ac threadpool: catch exceptions in dtor, to avoid terminate (moneromooo-monero)
24803ed9 blockchain_export: fix buffer overflow in exporter (moneromooo-monero)
f3f7da62 perf_timer: rewrite to make it clear there is no division by zero (moneromooo-monero)
c6ea3df0 performance_tests: remove add_arg call stray extra param (moneromooo-monero)
fa6b4566 fuzz_tests: fix an uninitialized var in setup (moneromooo-monero)
03887f11 keccak: fix sanity check bounds test (moneromooo-monero)
ad11db91 blockchain_db: initialize m_open in base class ctor (moneromooo-monero)
bece67f9 miner: restore std::cout precision after modification (moneromooo-monero)
1aabd14c db_lmdb: check hard fork info drop succeeded (moneromooo-monero)
2018-02-16 14:26:58 +01:00
moneromooo-monero 2e3e90acbe pass large parameters by const ref, not value
Coverity 136394 136397 136409 136526 136529 136533 175302
2018-02-02 19:36:09 +00:00
Erik de Castro Lopo 32c0f908cd Allow the number of incoming connections to be limited
It was already possible to limit outgoing connections. One might want
to do this on home network connections with high bandwidth but low
usage caps.
2018-01-29 11:14:02 +11:00
stoffu 935e39c7f3 levin_protocol_handler_async: erase from back of vector instead of front 2018-01-26 10:58:07 +09:00
Riccardo Spagni 6ca30ae666 Merge pull request #2936
cb9aa23c levin_protocol_handler_async: another attempt at fixing at exception (moneromooo-monero)
64d23ce3 Revert "epee: keep a ref to a connection we're deleting" (moneromooo-monero)
2017-12-25 21:21:17 +02:00
Riccardo Spagni effdc82b58 Merge pull request #2930
7f4bb612 levin_protocol_handler_async: add missing response handler locking (moneromooo-monero)
2017-12-25 21:20:41 +02:00
Riccardo Spagni 13b846971c Merge pull request #2909
dba2de61 levin_protocol_handler_async: call handler destroy function on dtor (moneromooo-monero)
2017-12-25 21:16:37 +02:00
moneromooo-monero 09ce03d612 move includes around to lessen overall load 2017-12-16 22:46:38 +00:00
moneromooo-monero cb9aa23cc5 levin_protocol_handler_async: another attempt at fixing at exception 2017-12-15 18:38:53 +00:00
moneromooo-monero 64d23ce331 Revert "epee: keep a ref to a connection we're deleting"
This reverts commit f2939bdce8.
2017-12-15 13:23:21 +00:00
moneromooo-monero 7f4bb612fb levin_protocol_handler_async: add missing response handler locking 2017-12-15 10:47:45 +00:00