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
luigi1111
a2b046dafc
Merge pull request #7460
...
2935a0c
async_protocol_handler_config: fix deadlock (anon)
c877705
async_protocol_handler_config: add deadlock demo (anon)
2021-03-29 21:46:29 -04:00
luigi1111
602926fe9d
Merge pull request #7366
...
9867a91
Store RPC SSL key/cert for consistent authentication between runs (Lee Clagett)
2021-03-20 01:38:03 -04:00
luigi1111
6e1b3d1e0b
Merge pull request #7274
...
daf023d
epee: don't log raw packet data (moneromooo-monero)
2021-03-20 01:35:51 -04:00
anon
2935a0c479
async_protocol_handler_config: fix deadlock
2021-03-12 11:59:06 +00:00
luigi1111
0b6bfb1fd8
Merge pull request #7399
...
556af11
epee: return HTTP error 400 (Bad request) on deserialization error (moneromooo-monero)
2021-03-05 13:56:54 -05:00
moneromooo-monero
556af11d3b
epee: return HTTP error 400 (Bad request) on deserialization error
...
It's better than 404 (Not found)
2021-02-23 18:55:08 +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
luigi1111
9f6dcbd568
Merge pull request #7308
...
df2f00f
boosted_tcp_server: fix connection lifetime (anon)
3833624
boosted_tcp_server: add segfault demo (anon)
2021-02-15 21:53:43 -05:00
Lee Clagett
9867a913dc
Store RPC SSL key/cert for consistent authentication between runs
2021-02-13 20:26:26 +00:00
mj-xmr
dc48de74e8
Reduce compilation time of epee/portable_storage.h
2021-02-06 08:18:42 +01:00
anon
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
679d05567d
Remove payload copy in all outgoing p2p messages
2021-01-19 02:22:32 +00:00
Lee Clagett
23aae5571b
Remove payload copy in all outgoing p2p messages
2021-01-16 22:53:28 +00:00
moneromooo-monero
daf023de6e
epee: don't log raw packet data
2021-01-03 14:41:01 +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
anon
f7ab8bc6d4
ssl: buffered handshake detection
2020-12-28 14:25:37 +01:00
moneromooo-monero
95575cda6e
epee: fix some issues using connections after shutdown
2020-12-26 14:14:55 +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
c5f6629f4a
epee: tighten the URL parsing regexp a little
...
fixes massive amounts of time spent on pathological inputs
Found by OSS-Fuzz
2020-11-09 13:05:39 +00:00
Alexander Blair
d73b1b6560
Merge pull request #6727
...
13eee1d6a
rpc: reject wrong sized txid (moneromooo-monero)
92e6b7df2
easylogging++: fix crash with reentrant logging (moneromooo-monero)
6dd95d530
epee: guard against exceptions in RPC handlers (moneromooo-monero)
90016ad74
blockchain: guard against exceptions in add_new_block/children (moneromooo-monero)
2020-08-16 12:55:25 -07:00
Alexander Blair
7db379cc82
Merge pull request #6720
...
86abf558c
epee: Remove unused functions in local_ip.h (Jean Pierre Dudey)
2020-08-16 12:54:17 -07:00
moneromooo-monero
6dd95d5308
epee: guard against exceptions in RPC handlers
2020-07-30 22:52:12 +00:00
Jean Pierre Dudey
86abf558cb
epee: Remove unused functions in local_ip.h
...
Signed-off-by: Jean Pierre Dudey <me@jeandudey.tech>
2020-07-22 19:06:01 -05:00
xiphon
76c16822d0
wallet2_api: implement runtime proxy configuration
2020-07-20 13:45:12 +00:00
Alexander Blair
3ba6c7fd30
Merge pull request #6516
...
8656a8c9f
remove double includes (sumogr)
2020-07-19 03:34:28 -07:00
Alexander Blair
a0d179e528
Merge pull request #6512
...
5ef0607da
Update copyright year to 2020 (SomaticFanatic)
2020-07-19 03:32:59 -07:00
Lee Clagett
7aeb503547
Fix boost <1.60 compilation and fix boost 1.73+ warnings
2020-05-31 21:18:11 -04:00
sumogr
8656a8c9ff
remove double includes
2020-05-11 13:53:17 +00:00
SomaticFanatic
5ef0607da6
Update copyright year to 2020
...
Update copyright year to 2020
2020-05-06 22:36:54 -04:00
luigi1111
c9b800a787
Merge pull request #6446
...
e509ede
trezor: adapt to new passphrase mechanism (ph4r05)
2020-05-01 15:32:52 -05:00
Dusan Klinec
e509ede2aa
trezor: adapt to new passphrase mechanism
...
- choice where to enter passphrase is now made on the host
- use wipeable string in the comm stack
- wipe passphrase memory
- protocol optimizations, prepare for new firmware version
- minor fixes and improvements
- tests fixes, HF12 support
2020-04-27 18:17:56 +02:00
woodser
87d75584e8
Allow wallet2.h to run in WebAssembly
...
- Add abstract_http_client.h which http_client.h extends.
- Replace simple_http_client with abstract_http_client in wallet2,
message_store, message_transporter, and node_rpc_proxy.
- Import and export wallet data in wallet2.
- Use #if defined __EMSCRIPTEN__ directives to skip incompatible code.
2020-04-15 13:22:46 -04:00
luigi1111
c4f75fe898
Merge pull request #6339
...
c61abf8
remove empty statements (shopglobal)
2020-04-04 12:47:31 -05: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
Alexander Blair
857abc368c
Merge pull request #6244
...
352bd132
abstract_tcp_server2: guard against negative timeouts (moneromooo-monero)
2020-03-12 00:56:29 -07:00
Alexander Blair
092a57df99
Merge pull request #6243
...
4771a7ae
p2p: remove obsolete local time in handshake (moneromooo-monero)
2fbbc4a2
p2p: avoid sending the same peer list over and over (moneromooo-monero)
3004835b
epee: remove backward compatible endian specific address serialization (moneromooo-monero)
39a343d7
p2p: remove backward compatible peer list (moneromooo-monero)
60631802
p2p: simplify last_seen serialization now we have optional stores (moneromooo-monero)
9467b2e4
cryptonote_protocol: omit top 64 bits of difficulty when 0 (moneromooo-monero)
b595583f
serialization: do not write optional fields with default value (moneromooo-monero)
5f98b46d
p2p: remove obsolete local time from TIMED_SYNC (moneromooo-monero)
2020-03-12 00:32:46 -07:00
Interchained
c61abf87c0
remove empty statements
...
Cleaning up a little around the code base.
2020-02-17 11:55:15 -05:00
Alexander Blair
a62f7dc573
Merge pull request #6182
...
e896cca8
epee: reorder a couple init list fields to match declaration (moneromooo-monero)
2020-02-06 00:34:15 -08:00
moneromooo-monero
3004835b51
epee: remove backward compatible endian specific address serialization
2020-01-26 18:37:34 +00:00
Alexander Blair
8039fd4cab
Merge pull request #6143
...
6efeefbc
epee: set application/json MIME type on json errors (moneromooo-monero)
2020-01-16 17:46:13 -08:00
moneromooo-monero
352bd13254
abstract_tcp_server2: guard against negative timeouts
2019-12-16 18:24:52 +00:00
moneromooo-monero
e896cca86e
epee: reorder a couple init list fields to match declaration
...
This is a bug waiting to happen
2019-11-25 19:27:54 +00:00
moneromooo-monero
6efeefbca2
epee: set application/json MIME type on json errors
2019-11-15 19:39:20 +00:00
moneromooo-monero
3d649d528a
epee: close connection when the peer has done so
...
This fixes rapid reconnections failing as the peer hasn't yet
worked out the other side is gone, and will reject "duplicate"
connections until a timeout.
2019-11-11 20:05:24 +00:00
luigi1111
42d84ad35e
Merge pull request #6006
...
9f3be3b
epee: use SO_REUSEADDR on non-Windows targets (xiphon)
2019-10-24 12:41:59 -05:00
xiphon
9f3be3baed
epee: use SO_REUSEADDR on non-Windows targets
2019-10-22 18:40:01 +00:00
luigi1111
6b58d6248a
Merge pull request #5996
...
23ba69e
epee: fix SSL server handshake, run_one() can block, use poll_one() (xiphon)
2019-10-22 10:26:31 -05:00
luigi1111
18f62f89d8
Merge pull request #5986
...
1080136
abstract_tcp_server2: move 'Trying to connect' from error to debug (moneromooo-monero)
2019-10-22 10:23:04 -05:00
xiphon
23ba69ec88
epee: fix SSL server handshake, run_one() can block, use poll_one()
2019-10-18 18:32:33 +00:00
luigi1111
7ec8d9640e
Merge pull request #5911
...
e48dcb7
levin: armour against some 'should not happen' case (moneromooo-monero)
2019-10-16 13:35:55 -05: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
8fcdf77d7b
Merge pull request #5947
...
c9cfbf7
epee: tcp server - set SO_LINGER instead of SO_REUSEADDR option (xiphon)
2019-10-14 20:04:02 -05:00
luigi1111
4118e4b1e9
Merge pull request #5937
...
4b654f6
abstract_tcp_server2: log pointer, not contents, where appropriate (moneromooo-monero)
2019-10-14 18:08:47 -05:00
moneromooo-monero
10801362f4
abstract_tcp_server2: move "Trying to connect" from error to debug
...
and fix the message grammar
2019-10-14 14:15:21 +00:00
luigi1111
18da0fa240
Merge pull request #5918
...
4371791
epee: implement handshake timeout for SSL connections (xiphon)
2019-10-08 14:30:45 -05:00
luigi1111
ca975bcb79
Merge pull request #5917
...
7d81850
epee: fix network timeouts in blocked_mode_client (xiphon)
2019-10-08 14:28:50 -05:00
xiphon
c9cfbf7fb3
epee: tcp server - set SO_LINGER instead of SO_REUSEADDR option
2019-10-02 19:08:02 +00:00
luigi1111
15b9b4e047
Merge pull request #5910
...
1b91beb
abstract_tcp_server2: fix lingering connections (moneromooo-monero)
2019-09-30 18:55:58 -05:00
luigi1111
c6430f9dd0
Merge pull request #5893
...
Coverity fixes [3a81639
, 1bd962d
, 2825f07
, d099658
, d46f701
, cd57a10
] (anonimal)
2019-09-30 18:43:48 -05:00
moneromooo-monero
4b654f65a3
abstract_tcp_server2: log pointer, not contents, where appropriate
2019-09-27 15:15:32 +00:00
xiphon
4371791977
epee: implement handshake timeout for SSL connections
2019-09-17 22:21:16 +00:00
xiphon
7d81850a46
epee: fix network timeouts in blocked_mode_client
2019-09-16 18:55:36 +00:00
luigi1111
b4ac8969a8
Merge pull request #5898
...
73f22c4
depends: fix MacOS build with Clang 3.7.1 (vtnerd)
2019-09-14 13:22:35 -05:00
moneromooo-monero
1b91bebd2e
abstract_tcp_server2: fix lingering connections
...
Resetting the timer after shutdown was initiated would keep
a reference to the object inside ASIO, which would keep the
connection alive until the timer timed out
2019-09-12 12:10:50 +00:00
Lee Clagett
73f22c48e1
depends: fix MacOS build with Clang 3.7.1
2019-09-08 22:49:11 +02:00
anonimal
cd57a10c90
epee: abstract_tcp_server2: resolve CID 203919 (DC.WEAK_CRYPTO)
...
The problem actually exists in two parts:
1. When sending chunks over a connection, if the queue size is
greater than N, the seed is predictable across every monero node.
>"If rand() is used before any calls to srand(), rand() behaves as if
it was seeded with srand(1). Each time rand() is seeded with the same seed, it
must produce the same sequence of values."
2. The CID speaks for itself: "'rand' should not be used for security-related
applications, because linear congruential algorithms are too easy to break."
*But* this is an area of contention.
One could argue that a CSPRNG is warranted in order to fully mitigate any
potential timing attacks based on crafting chunk responses. Others could argue
that the existing LCG, or even an MTG, would suffice (if properly seeded). As a
compromise, I've used an MTG with a full bit space. This should give a healthy
balance of security and speed without relying on the existing crypto library
(which I'm told might break on some systems since epee is not (shouldn't be)
dependent upon the existing crypto library).
2019-09-08 01:14:39 +00:00
moneromooo-monero
bc1144e98e
Fix IP address serialization on big endian
...
IP addresses are stored in network byte order even on little
endian hosts
2019-09-04 14:54:01 +00:00
moneromooo-monero
bdda084651
epee: fix local/loopback checks on big endian
...
IPv4 addresses are kept in network byte order in memory
2019-09-04 14:53:56 +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
luigi1111
8a0711f2f2
Merge pull request #5674
...
fcbf7b3
p2p: propagate out peers limit to payload handler (moneromooo-monero)
098aadf
p2p: close the right number of connections on setting max in/out peers (moneromooo-monero)
2019-08-15 17:22:39 -05:00
luigi1111
df064eaa36
Merge pull request #5649
...
a182df2
Bans for RPC connections (hyc)
2019-08-15 17:10:49 -05:00
Thomas Winget
155475d971
Add IPv6 support
...
new cli options (RPC ones also apply to wallet):
--p2p-bind-ipv6-address (default = "::")
--p2p-bind-port-ipv6 (default same as ipv4 port for given nettype)
--rpc-bind-ipv6-address (default = "::1")
--p2p-use-ipv6 (default false)
--rpc-use-ipv6 (default false)
--p2p-require-ipv4 (default true, if ipv4 bind fails and this is
true, will not continue even if ipv6 bind
successful)
--rpc-require-ipv4 (default true, description as above)
ipv6 addresses are to be specified as "[xx:xx:xx::xx:xx]:port" except
in the cases of the cli args for bind address. For those the square
braces can be omitted.
2019-07-31 20:04:57 -04:00
luigi1111
38e0e58a95
Merge pull request #5531
...
9a6006b
abstract_tcp_server2: move some things out of a lock (moneromooo-monero)
2019-07-24 14:08:52 -05:00
luigi1111
e579fe4ae0
Merge pull request #5530
...
6abaaaa
remove obsolete save_graph skeleton code (moneromooo-monero)
2019-07-24 14:07:29 -05:00
luigi1111
8774384ace
Merge pull request #5528
...
f61a315
net_utils: fix m_ssl type from time_t to bool (moneromooo-monero)
2019-07-24 14:05:18 -05: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
Jethro Grassie
30779de39d
fix feature not introduced until boost 1.66
2019-08-20 01:06:59 -04:00
moneromooo-monero
65c4004963
allow blocking whole subnets
2019-07-16 11:35:53 +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
Howard Chu
a182df21d0
Bans for RPC connections
...
Make bans control RPC sessions too. And auto-ban some bad requests.
Drops HTTP connections whenever response code is 500.
2019-06-16 11:38:08 +01:00
moneromooo-monero
bc09766bf9
abstract_tcp_server2: improve DoS resistance
2019-06-14 08:47:26 +00:00
luigi1111
9c0e9c40ec
Merge pull request #5618
...
b0a04f7
epee: fix SSL autodetect on reconnection (xiphon)
2019-06-11 18:15:48 -05:00
xiphon
b0a04f7d45
epee: fix SSL autodetect on reconnection
2019-06-10 10:40:16 +00:00
moneromooo-monero
35c20c4332
Fix GCC 9.1 build warnings
...
GCC wants operator= aand copy ctor to be both defined, or neither
2019-06-09 09:39:18 +00:00
Lee Clagett
3544596f9f
Add ssl_options support to monerod's rpc mode.
2019-05-22 00:09:11 -04:00
moneromooo-monero
9a6006bad8
abstract_tcp_server2: move some things out of a lock
...
The lock is meant for the network throttle object only,
and this should help coverity get unconfused
2019-05-10 14:18:11 +00:00
moneromooo-monero
6abaaaa994
remove obsolete save_graph skeleton code
2019-05-10 14:17:18 +00:00
moneromooo-monero
f61a315e8b
net_utils: fix m_ssl type from time_t to bool
2019-05-10 14:14:49 +00:00
moneromooo-monero
a62e072571
net_ssl: SSL config tweaks for compatibility and security
...
add two RSA based ciphers for Windows/depends compatibility
also enforce server cipher ordering
also set ECDH to auto because vtnerd says it is good :)
When built with the depends system, openssl does not include any
cipher on the current whitelist, so add this one, which fixes the
problem, and does seem sensible.
2019-05-07 10:01:42 +00:00
moneromooo-monero
5e0da6fb68
change SSL certificate fingerprint whitelisting from SHA1 to SHA-256
...
SHA1 is too close to bruteforceable
2019-04-26 11:37:15 +00:00
Riccardo Spagni
5d09e39174
Merge pull request #5482
...
9956500d
net_helper: clear recv buffer on eof (moneromooo-monero)
2019-04-24 22:40:12 +02:00
moneromooo-monero
9956500d14
net_helper: clear recv buffer on eof
2019-04-23 13:23:17 +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