Commit Graph

418 Commits

Author SHA1 Message Date
Erik de Castro Lopo 8f30350d03 Fix method name in invoke_http_json_rpc
Previously, the method name was printed as an exmpty string because
the input string had already been moved with `std::move`.
2018-01-29 11:14:02 +11: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
Riccardo Spagni 76a6a794f9
Merge pull request #2969
95171614 Remove is_pod trait, and replace with is_standard_layout requirement (Lee Clagett)
2018-01-27 17:26:58 -08:00
Riccardo Spagni baaeefdecc
Merge pull request #3098
935e39c7 levin_protocol_handler_async: erase from back of vector instead of front (stoffu)
2018-01-27 17:23:53 -08:00
xmr-eric 84a7f6a482 Readd copyright starting date 2018-01-26 10:03:20 -05:00
xmr-eric 18216f19dd Update 2018 copyright 2018-01-26 10:03:20 -05: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 fdb0a92f1b
Merge pull request #3155
21bd2157 remove unnecessary include (Jethro Grassie)
2018-01-25 16:52:12 -08:00
Riccardo Spagni 9fff66f004
Merge pull request #3012
e4bbeff2 epee: check some error return values (moneromooo-monero)
2018-01-25 16:36:27 -08:00
Jethro Grassie 21bd21576d
remove unnecessary include 2018-01-18 19:03:05 -05:00
Riccardo Spagni d2ff91cb17
Merge pull request #3107
b7e5a70b epee: detect strptime, use std::get_time as fallback (moneromooo-monero)
2018-01-18 18:14:12 -05:00
Lee Clagett 951716146f Remove is_pod trait, and replace with is_standard_layout requirement 2018-01-18 02:26:19 -05:00
moneromooo-monero b7e5a70bb1
epee: detect strptime, use std::get_time as fallback 2018-01-11 21:41:07 +00:00
Jethro Grassie be1826c0fb
Keep readline optional 2018-01-11 13:51:13 -05:00
Riccardo Spagni 1c11ec71b5
Merge pull request #2995
6ccc51f6 wipeable_string: fix buffer overread (moneromooo-monero)
2018-01-10 11:53:42 +01:00
Riccardo Spagni f9c66ba67c
Merge pull request #2990
2d17feb0 factor STL container serialization (moneromooo-monero)
2018-01-10 11:53:05 +01:00
Riccardo Spagni 2d60c9b738
Merge pull request #2986
373d1d50 epee: use strptime instead of std::get_time, for compatibility (moneromooo-monero)
2018-01-10 11:51:20 +01:00
moneromooo-monero fdd4c5e577
move memwipe to epee to avoid common<->crypto circular dependencies 2018-01-10 01:57:54 +00:00
moneromooo-monero 40ab12a773
epee: remove dependency on common 2018-01-10 01:57:51 +00:00
moneromooo-monero e4bbeff2f5
epee: check some error return values 2017-12-27 00:14:43 +00: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 b38f6dcf0b
Merge pull request #2929
ae55bacd resumption support for updates using range requests (moneromooo-monero)
fe0fae50 epee: add a get_file_size function (moneromooo-monero)
2017-12-25 21:20:22 +02:00
Riccardo Spagni 2b00899bb2
Merge pull request #2920
bd5cce07 network_throttle: fix ineffective locking (moneromooo-monero)
e0a61299 network_throttle: remove unused xxx static member (moneromooo-monero)
24f584d9 cryptonote_core: remove unused functions with off by one bugs (moneromooo-monero)
b1634aa3 blockchain: don't leave dangling pointers in this (moneromooo-monero)
8e60b81c cryptonote_core: fix db leak on error (moneromooo-monero)
213e326c abstract_tcp_server2: log init_server errors as fatal (moneromooo-monero)
b51dc566 use const refs in for loops for non tiny types (moneromooo-monero)
f0568ca6 net_parse_helpers: fix regex error checking (moneromooo-monero)
b49ddc76 check accessing an element past the end of a container (moneromooo-monero)
2305bf26 check return value for generate_key_derivation and derive_public_key (moneromooo-monero)
a4240d9f catch const exceptions (moneromooo-monero)
45a1c4c0 add empty container sanity checks when using front() and back() (moneromooo-monero)
56fa6ce1 tests: fix a buffer overread in a unit test (moneromooo-monero)
b4524892 rpc: guard against json parsing a non object (moneromooo-monero)
c2ed8618 easylogging++: avoid buffer underflow (moneromooo-monero)
187a6ab2 epee: trap failure to parse URI from request (moneromooo-monero)
061789b5 checkpoints: trap failure to load JSON checkpoints (moneromooo-monero)
ba2fefb9 checkpoints: pass std::string by const ref, not const value (moneromooo-monero)
38c8f4e0 mlog: terminate a string at last char, just in case (moneromooo-monero)
d753d716 fix a few leaks by throwing objects, not newed pointers to objects (moneromooo-monero)
fe568db8 p2p: use size_t for arbitrary counters instead of uint8_t (moneromooo-monero)
46d6fa35 cryptonote_protocol: sanity check chain hashes from peer (moneromooo-monero)
25584f86 cryptonote_protocol: print peer versions when unexpected (moneromooo-monero)
490a5d41 rpc: do not try to use an invalid txid in relay_tx (moneromooo-monero)
2017-12-25 21:17:52 +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
Riccardo Spagni 9d1c4408ad
Merge pull request #2905
bd1f6029 http_client: rewrite header parsing manually for speed (moneromooo-monero)
ec724eb6 tests: add levin fuzz test (moneromooo-monero)
f1bdc9a4 tests: add http client fuzz test (moneromooo-monero)
0272df9e add parse_url fuzz test (moneromooo-monero)
261b0dd0 tests: add base58 fuzz test (moneromooo-monero)
fd052087 fuzz_testing: allow automatically resuming an interrupted job (moneromooo-monero)
c80bb0eb tests: don't init stuff we don't need in fuzz tests - faster (moneromooo-monero)
53b83a83 tests: better load-from-binary fuzz test data file (moneromooo-monero)
1a379ef6 fuzz_testing: build with ASAN (assumed to be available) (moneromooo-monero)
4cd4a431 fuzz_testing: create out directory if needed, and fix filename passing (moneromooo-monero)
c27d9092 Makefile: build fuzz tests statically, starts faster (moneromooo-monero)
95aa0bf7 add load_from_binary/load_from_json fuzzers (moneromooo-monero)
2017-12-25 21:16:21 +02:00
moneromooo-monero 6ccc51f645
wipeable_string: fix buffer overread 2017-12-23 15:30:04 +00:00
dEBRUYNE-1 2018cf74a6
Fix Windows build
Fix no new line
2017-12-23 15:27:30 +01:00
moneromooo-monero bd1f6029a3
http_client: rewrite header parsing manually for speed
boost::regex is stupendously atrocious at parsing malformed data
2017-12-23 11:29:58 +00:00
moneromooo-monero ec724eb64a
tests: add levin fuzz test 2017-12-23 11:29:55 +00:00
moneromooo-monero f1bdc9a42a
tests: add http client fuzz test 2017-12-23 11:29:52 +00:00
moneromooo-monero 0272df9e61
add parse_url fuzz test 2017-12-23 11:29:49 +00:00
moneromooo-monero 261b0dd0e0
tests: add base58 fuzz test 2017-12-23 11:27:45 +00:00
moneromooo-monero fd05208762
fuzz_testing: allow automatically resuming an interrupted job 2017-12-23 11:27:42 +00:00
moneromooo-monero 4cd4a4313d
fuzz_testing: create out directory if needed, and fix filename passing 2017-12-23 11:27:31 +00:00
moneromooo-monero 95aa0bf79b
add load_from_binary/load_from_json fuzzers 2017-12-23 11:27:25 +00:00
moneromooo-monero 2d17feb060
factor STL container serialization 2017-12-22 19:47:12 +00:00
moneromooo-monero 373d1d504b
epee: use strptime instead of std::get_time, for compatibility 2017-12-21 16:04:47 +00:00
moneromooo-monero 6c94516fb4
wipeable_string: move a wipe from reserve to grow
That way, all implicit wipes ends up in grow, which is more robust
2017-12-19 14:06:42 +00:00
moneromooo-monero 5f801b6adf
wipeable_string: ignore reserve size less than actual size
This was asserting, but stoffu pointed out the std::string standard
considers this ok and ignorable
2017-12-19 14:00:41 +00:00
moneromooo-monero 9ec44a2b06
wipeable_string: fix clear and push_back 2017-12-19 11:55:45 +00:00
moneromooo-monero bd5cce07b3
network_throttle: fix ineffective locking 2017-12-18 15:16:11 +00:00
moneromooo-monero e0a61299fb
network_throttle: remove unused xxx static member 2017-12-18 15:16:09 +00:00
moneromooo-monero 213e326cc9
abstract_tcp_server2: log init_server errors as fatal
so they show up by default
2017-12-18 15:15:57 +00:00
moneromooo-monero f0568ca6ac
net_parse_helpers: fix regex error checking 2017-12-18 15:15:52 +00:00
moneromooo-monero a4240d9ffc
catch const exceptions 2017-12-18 15:15:43 +00:00
moneromooo-monero 45a1c4c088
add empty container sanity checks when using front() and back() 2017-12-18 15:15:40 +00:00
moneromooo-monero 187a6ab2d2
epee: trap failure to parse URI from request 2017-12-18 15:15:26 +00:00
moneromooo-monero 38c8f4e0a3
mlog: terminate a string at last char, just in case 2017-12-18 15:15:16 +00:00
Riccardo Spagni a3a8343051
Merge pull request #2857
7193b89f Scrub keys from memory just before scope end. (moneromooo-monero)
2017-12-17 13:00:11 +02:00
Riccardo Spagni 066fd7aced
Merge pull request #2877
43f5269f Wallets now do not depend on the daemon rpc lib (moneromooo-monero)
bb89ae8b move connection_basic and network_throttle from src/p2p to epee (moneromooo-monero)
4abf25f3 cryptonote_core does not depend on p2p anymore (moneromooo-monero)
2017-12-17 12:59:44 +02:00
moneromooo-monero bb89ae8b20
move connection_basic and network_throttle from src/p2p to epee
These even had the epee namespace.
This fixes some ugly circular dependencies.
2017-12-16 23:28:43 +00:00
moneromooo-monero 09ce03d612
move includes around to lessen overall load 2017-12-16 22:46:38 +00:00
moneromooo-monero 7193b89fe5 Scrub keys from memory just before scope end.
Partially implements #74.

Securely erases keys from memory after they are no longer needed. Might have a
performance impact, which I haven't measured (perf measurements aren't
generally reliable on laptops).

Thanks to @stoffu for the suggestion to specialize the pod_to_hex/hex_to_pod
functions. Using overloads + SFINAE instead generalizes it so other types can
be marked as scrubbed without adding more boilerplate.
2017-12-16 15:40:33 -07:00
Riccardo Spagni 9b511d3e93
Merge pull request #2866
cf5f6236 Corrections in rate limiting / trottle code, especially in 'out' direction (rbrunner7)
2017-12-16 23:24:41 +02:00
Riccardo Spagni 6c0953b15a
Merge pull request #2860
3dffe71b new wipeable_string class to replace std::string passphrases (moneromooo-monero)
7a2a5741 utils: initialize easylogging++ in on_startup (moneromooo-monero)
54950829 use memwipe in a few relevant places (moneromooo-monero)
000666ff add a memwipe function (moneromooo-monero)
2017-12-16 23:19:27 +02: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
moneromooo-monero fe0fae5089
epee: add a get_file_size function 2017-12-15 10:32:36 +00:00
moneromooo-monero dba2de61e7
levin_protocol_handler_async: call handler destroy function on dtor 2017-12-11 18:33:37 +00:00
Riccardo Spagni f51bac990e
Merge pull request #2906
27aa8ce9 net_utils_base: fix peer list parsing (moneromooo-monero)
fe5ab2c4 epee: fix kv_unserialize return value when a field is not found (moneromooo-monero)
2017-12-10 13:08:23 +02:00
moneromooo-monero 27aa8ce95b
net_utils_base: fix peer list parsing
Fields are written with their "name" as key, and that name changed.
2017-12-09 22:16:58 +00:00
moneromooo-monero 3d0b54bd01
epee: add do while(0) around brace statement in a macro
Allows use in more complex expressions
2017-12-07 19:23:02 +00:00
Riccardo Spagni bae16bf878
Merge pull request #2847
7256d9a7 Fix versioning (vdo)
e459d467 Update snap version to 0.11.1 (vdo)
2017-12-02 09:24:08 +02:00
Riccardo Spagni 1fec38e736
Merge pull request #2832
287dde63 Added command descriptions (Cifrado)
2017-12-02 09:22:43 +02:00
moneromooo-monero fe5ab2c439
epee: fix kv_unserialize return value when a field is not found 2017-12-01 16:43:57 +00:00
rbrunner7 cf5f623616 Corrections in rate limiting / trottle code, especially in 'out' direction
Deleted 3 out of 4 calls to method connection_basic::sleep_before_packet
that were erroneous / superfluous, which enabled the elimination of a
"fudge" factor of 2.1 in connection_basic::set_rate_up_limit;
also ended the multiplying of limit values and numbers of bytes
transferred by 1024 before handing them over to the global throttle
objects
2017-11-28 21:18:01 +01:00
moneromooo-monero 3dffe71b72
new wipeable_string class to replace std::string passphrases 2017-11-27 22:25:57 +00:00
Cifrado 287dde63d8 Added command descriptions 2017-11-26 10:37:37 +01:00
vdo 7256d9a7cd Fix versioning 2017-11-22 11:18:54 +01:00
vdo e459d467f6 Update snap version to 0.11.1 2017-11-20 22:33:23 +01:00
Tim L f5461a6a07 RPC: CORS add Access-Control-Allow-Headers to OPTIONS preflight 2017-11-16 13:56:16 -05:00
Riccardo Spagni 2c12847dd6
Merge pull request #2811
f80f408b epee: don't disable -Wtautological-constant-out-of-range-compare on GCC (moneromooo-monero)
2017-11-14 21:33:20 +02:00
Riccardo Spagni edebe4e3b6
Merge pull request #2736
0d9c0db9 Do not build against epee_readline if it was not built (Howard Chu)
178014c9 split off readline code into epee_readline (moneromooo-monero)
a9e14a19 link against readline only for monerod and wallet-wallet-{rpc,cli} (moneromooo-monero)
437421ce wallet: move some scoped_message_writer calls from the libs (moneromooo-monero)
e89994e9 wallet: rejig to avoid prompting in wallet2 (moneromooo-monero)
ec5135e5 move input_line from command_line to simplewallet (moneromooo-monero)
082db75f move cryptonote command line options to cryptonote_core (moneromooo-monero)
2017-11-14 21:31:51 +02:00
Riccardo Spagni 5de492be40
Merge pull request #2629
383ff4f6 remove "using namespace std" from headers (moneromooo-monero)
2017-11-14 21:29:49 +02:00
moneromooo-monero f80f408b7e
epee: don't disable -Wtautological-constant-out-of-range-compare on GCC
It's a CLANG only option, and causes GCC to error out
2017-11-14 17:22:39 +00:00
moneromooo-monero 178014c995
split off readline code into epee_readline 2017-11-14 17:06:35 +00:00
moneromooo-monero 383ff4f689
remove "using namespace std" from headers
It's nasty, and actually breaks on Solaris, where if.h fails to
build due to:

  struct map *if_memmap;
2017-11-14 16:56:10 +00:00
Riccardo Spagni f48aeab5c4
Merge pull request #2756
0bf09154 Fix file permission issue (Tim L)
2017-11-14 16:02:28 +02:00
Riccardo Spagni a2241e8151
Merge pull request #2753
fa514082 RPC: get_info add rpc_connections_count (Tim L)
2017-11-14 15:54:33 +02:00
Riccardo Spagni 176dd1fbe5
Merge pull request #2743
9ff8e139 epee: disable a spurious warning for a storage function (moneromooo-monero)
2017-11-14 15:30:43 +02:00
Riccardo Spagni 9317c9c57e
Merge pull request #2617
7dbf76d0 Fix an object lifetime bug in net load tests (moneromooo-monero)
2017-11-14 14:54:05 +02:00
Tim L fa51408272 RPC: get_info add rpc_connections_count 2017-11-07 16:34:49 -05:00
Tim L 0bf0915446 Fix file permission issue
This branch fixes a file permission issue introduced by 69c37200aa
2017-11-03 11:27:50 -04:00
Riccardo Spagni 35dbb3be33
Merge pull request #2663
4b228dd3 cmake: epee: use var from FindOpenSSL.cmake (redfish)
29497f79 epee: use boost type for SSL error code (redfish)
2017-11-01 11:25:53 +02:00
Riccardo Spagni 54463b33b3
Merge pull request #2723
69c37200 RPC Add cross origin resource sharing support (Tim L)
2017-10-31 20:38:38 +02:00
Tim L 69c37200aa RPC Add cross origin resource sharing support 2017-10-30 13:55:56 -04:00
moneromooo-monero 9ff8e139cd
epee: disable a spurious warning for a storage function 2017-10-28 11:52:14 +01:00
moneromooo-monero 969b5a2ae3
net_helper: fix massive slowdown after SSL support 2017-10-20 17:27:15 +01:00
redfish 4b228dd356 cmake: epee: use var from FindOpenSSL.cmake
This fixes linking when path to openssl
is defined manually:
cmake -DOPENSSL_ROOT_DIR='/usr/include/openssl-1.0;/usr/lib/openssl-1.0' ...

This is useful for building with OpenSSL v1.0
when default system installation is v1.1.

The linking error is undefined SSL_load_error_strings symbol.
This is due to -L /usr/lib/openssl-1.0 not making it onto
the linkline (so -lssl pulls in the default system openssl).
2017-10-17 16:13:07 -04:00
redfish 29497f7920 epee: use boost type for SSL error code
Fixes compile error when building with OpenSSL v1.1:

contrib/epee/include/net/net_helper.h: In member function ‘void epee::net_utils::blocked_mode_client::shutdown_ssl()’:
contrib/epee/include/net/net_helper.h:579:106: error: ‘SSL_R_SHORT_READ’ was not declared in this scope
    if (ec.category() == boost::asio::error::get_ssl_category() && ec.value() != ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ))
                                                                                                          ^
contrib/epee/include/net/net_helper.h:579:106: note: suggested alternative: ‘SSL_F_SSL_READ’

See boost/asio/ssl/error.hpp.
Boost handles differences between OpenSSL versions.

cmake: fail if Boost is too old for OpenSSL v1.1
2017-10-17 16:12:58 -04:00
moneromooo-monero 52ec0e7f4e
epee: link against ssl/crypto for the new SSL code 2017-10-15 19:11:34 +01:00
Riccardo Spagni 845afb5191
Merge pull request #2613
2051f89f cmake: build tests last (redfish)
2017-10-15 18:58:31 +02:00
Riccardo Spagni f1bee553b1
Merge pull request #2602
bc1b9333 frob level 1 logs a bit for consistency (moneromooo-monero)
2017-10-15 18:49:48 +02:00
Jaquee a13540be6f add string_tools::validate_hex() 2017-10-15 17:32:13 +02:00
Jaquee 76961ddc3e Serializer: string to integer conversion for MyMonero compatibility
mymonero timestamp conversion
2017-10-15 17:29:07 +02:00
Jaquee 1cf940f2a1 epee http_client SSL support 2017-10-15 17:29:04 +02:00
moneromooo-monero 7dbf76d0da
Fix an object lifetime bug in net load tests
The commands handler must not be destroyed before the config
object, or we'll be accessing freed memory.

An earlier attempt at using boost::shared_ptr to control object
lifetime turned out to be very invasive, though would be a
better solution in theory.
2017-10-09 16:46:42 +01:00
redfish 2051f89fbe cmake: build tests last
Keep -Werror for src, contrib and do not pass it for tests/
2017-10-08 20:47:50 -04:00