aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/net (follow)
AgeCommit message (Collapse)AuthorFilesLines
2024-05-21copyright: bump to 2024copyCat6-6/+6
2024-03-10Revert "http_client: reduce number of packets sent for small bodies"jeffro2561-26/+16
This reverts commit 0ae5c91e504b8007dedc2b89c9b2b49c404ffec6.
2024-02-24Merge pull request #9125luigi11111-193/+0
0c545f6 epee/test: remove levin_protocol_handler and core_proxy tests (jeffro256)
2024-01-17epee/test: remove levin_protocol_handler and core_proxy testsjeffro2561-193/+0
2023-12-19Cleanup scoped_ptr in src/common/dns_utils.cpp and header include:0xFFFC00001-0/+1
* No need for entire new class (Fix #8732). * Fix stdint.h header include in contrib/epee/include/net/http_base.h.
2023-08-17Merge pull request #8786luigi11111-16/+26
0ae5c91 http_client: reduce number of packets sent for small bodies (jeffro256)
2023-07-06Merge pull request #8344luigi11111-0/+27
70bbd25 core_rpc_server: new file: rpc_ssl.fingerprint (Jeffrey Ryan)
2023-07-02core_rpc_server: new file: rpc_ssl.fingerprintJeffrey Ryan1-0/+27
2023-06-27Merge pull request #8792luigi11111-1/+0
04dfdb3 epee: protect base64_chars, removed dead functions, speed up compile (Jeffro256)
2023-06-27Merge pull request #8731luigi11111-4/+1
6c73dc7 properly terminate interrupted TCP connection. fixes #8685 (j-berman)
2023-06-27Merge pull request #8598luigi11111-86/+2
4f3a54b Remove invoke function in levin handler (Lee Clagett)
2023-04-25Merge pull request #8789luigi11111-166/+0
df9aa6b epee: remove dead code in net_helper (Jeffro256)
2023-03-20epee: protect base64_chars, removed dead functions, speed up compileJeffro2561-1/+0
2023-03-19http_client: reduce number of packets sent for small bodiesjeffro2561-16/+26
2023-03-19epee: remove dead code in net_helperJeffro2561-166/+0
2023-02-07Revert "epee: when loading a JSON RPC payload, ensure params is an object"moneromooo-monero1-10/+0
This reverts commit b67e931843cd0c8191ec49f80448c010cba39901. This turns out to be a bad idea, because we do have weird RPC which do actually go counter to this
2023-02-06Merge pull request #8692luigi11111-0/+10
b67e931 epee: when loading a JSON RPC payload, ensure params is an object (moneromooo-monero)
2023-02-04properly terminate interrupted TCP connection. fixes #8685j-berman1-4/+1
2023-01-16Copyright: Update to 2023mj-xmr6-6/+6
Co-authored-by: plowsof <plowsof@protonmail.com> extra files
2023-01-01epee: when loading a JSON RPC payload, ensure params is an objectmoneromooo-monero1-0/+10
this makes it easier to spot those mistakes by the caller
2022-11-13epee: remove dead HTTP codeJeffrey Ryan3-65/+0
http_client.h
2022-09-26Remove invoke function in levin handlerLee Clagett1-86/+2
2022-09-09Merge pull request #8348luigi11111-4/+4
a4cb77f epee: update 'http_server_handlers_map2.h' macros to use fully qualified names (Jeffrey Ryan)
2022-08-22Merge pull request #8352luigi11112-139/+0
552528b Remove async_blocked_mode_client (Jeffrey Ryan) 3ee2174 string_coding: unused functions (Jeffrey Ryan) 285d9f0 http_server_handlers_map2: dead macros (Jeffrey Ryan)
2022-07-15Merge pull request #8435v0.18.0.0luigi11111-0/+10
cf3be99 Template hash func to fix compiler error on < gcc-6 (j-berman)
2022-07-13Template hash func to fix compiler error on < gcc-6j-berman1-0/+10
2022-07-08address PR commentsj-berman2-378/+376
2022-07-05connection: fix implementationanon3-811/+1133
2022-06-17Remove async_blocked_mode_clientJeffrey Ryan1-113/+0
2022-05-23http_server_handlers_map2: dead macrosJeffrey Ryan1-26/+0
2022-05-23epee: update 'http_server_handlers_map2.h' macros to use fully qualified namesJeffrey Ryan1-4/+4
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
2022-05-10Merge pull request #8301luigi11111-1/+1
6ef945d Doxygen: Hide anonymous namespaces from documentation by default (Jeffrey)
2022-05-10Merge pull request #8279luigi11111-10/+1
f7d50cb EPEE: Remove gzip_encoding.h (Jeffrey)
2022-04-28Doxygen: Hide anonymous namespaces from documentation by defaultJeffrey1-1/+1
Bonus: little doc fix for net_ssl.h
2022-04-22EPEE: Remove gzip_encoding.hJeffrey1-10/+1
2022-04-21add a sanity check to RPC input data sizemoneromooo-monero2-0/+12
reported by m31007
2022-04-18Remove the only 4 non-UTF8 characters in codebaseJeffrey1-4/+4
Relevant commit in old PR: 1b798a7042070cc8063bd341ebf7025da554b632
2022-04-18Refactor out to_nonconst_iterator.hJeffrey3-3/+1
Relevant commit on old PR: 2499269696192ce30dd125ddee90a80d4326dff9
2022-04-18Refactor out pragma_comp_defsJeffrey2-11/+0
Relevant commits on the old cleanup PR: 36933c7f5c7778e2d7fbfea5361c11fb41070467 21e43de0f300ee47b7e597098908601bf591950b 3c678bb1cedfd7b865ac2e7aaf014de4bfb3eb3d
2022-04-18Merge functionality of misc_os_dependent into time_helper.hJeffrey1-1/+1
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: a9fbe52b02ffab451e90c977459fea4642731cd1 9a59b131c4ed1be8afe238fff3780fe203c65a46 7fa9e2817df9b9ef3f0290f7f86357939829e588
2022-04-18Trimming FatJeffrey1-1/+0
Remove unused include statements or unused definitions.
2022-04-18Boring Old DeletesJeffrey26-5459/+0
Here lies dozens of unused files. This commit is ONLY file deletions except for the removing of a couple of #includes and removing filenames from CmakeLists where appropriate.
2022-04-06Merge pull request #8223luigi11116-32/+27
17772ef Eliminate dependence on boost::interprocess #8223 (Jeffrey)
2022-04-06Merge pull request #8197luigi11117-7/+9
da9aa1f Copyright: Update to 2022 (mj-xmr)
2022-03-30Eliminate dependence on boost::interprocess #8223Jeffrey6-32/+27
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-04Copyright: Update to 2022mj-xmr7-7/+9
2022-02-19Undefined behaviour fixesSChernykh5-12/+12
Fixes issues reported in #8120
2021-08-20support cors wildcardwoodser1-1/+1
2021-08-05p2p: remove blocked addresses/hosts from peerlistmoneromooo-monero1-0/+3
2021-04-22Merge pull request #7669luigi11112-64/+77
679d055 Remove payload copy in all outgoing p2p messages (Lee Clagett)
2021-04-16Split epee/string_tools.h and encapsulate boost::lexical_castmj-xmr4-206/+12
2021-04-16Revert "Merge pull request #7136"luigi11112-77/+64
This reverts commit 63c7ca07fba2f063c760f786a986fb3e02fb040e, reversing changes made to 2218e23e84a89e9a1e4c0be5d50f891ab836754f.
2021-04-16Merge pull request #7136luigi11112-64/+77
23aae55 Remove payload copy in all outgoing p2p messages (Lee Clagett)
2021-03-29Merge pull request #7460luigi11111-28/+24
2935a0c async_protocol_handler_config: fix deadlock (anon) c877705 async_protocol_handler_config: add deadlock demo (anon)
2021-03-20Merge pull request #7366luigi11112-0/+10
9867a91 Store RPC SSL key/cert for consistent authentication between runs (Lee Clagett)
2021-03-20Merge pull request #7274luigi11111-4/+4
daf023d epee: don't log raw packet data (moneromooo-monero)
2021-03-12async_protocol_handler_config: fix deadlockanon1-28/+24
2021-03-05Merge pull request #7399luigi11111-2/+14
556af11 epee: return HTTP error 400 (Bad request) on deserialization error (moneromooo-monero)
2021-02-23epee: return HTTP error 400 (Bad request) on deserialization errormoneromooo-monero1-2/+14
It's better than 404 (Not found)
2021-02-19async_protocol_handler_config: remove connection correctlyanon1-1/+1
2021-02-18Merge pull request #7343luigi11111-32/+2
545b982 Remove unnecessary atomic operations in levin code (Lee Clagett)
2021-02-15Merge pull request #7308luigi11112-7/+19
df2f00f boosted_tcp_server: fix connection lifetime (anon) 3833624 boosted_tcp_server: add segfault demo (anon)
2021-02-13Store RPC SSL key/cert for consistent authentication between runsLee Clagett2-0/+10
2021-02-06Reduce compilation time of epee/portable_storage.hmj-xmr1-0/+1
2021-01-19boosted_tcp_server: fix connection lifetimeanon2-7/+19
2021-01-19Remove unnecessary atomic operations in levin codeLee Clagett1-32/+2
2021-01-19Remove payload copy in all outgoing p2p messagesLee Clagett2-64/+77
2021-01-16Remove payload copy in all outgoing p2p messagesLee Clagett2-64/+77
2021-01-03epee: don't log raw packet datamoneromooo-monero1-4/+4
2021-01-03add a max levin packet size by command typemoneromooo-monero1-4/+13
2020-12-17Add aggressive restrictions to pre-handshake p2p buffer limitLee Clagett2-10/+25
2020-12-28ssl: buffered handshake detectionanon4-12/+12
2020-12-26epee: fix some issues using connections after shutdownmoneromooo-monero1-6/+21
2020-10-10Change epee binary output from std::stringstream to byte_streamLee Clagett6-10/+12
2020-11-09epee: tighten the URL parsing regexp a littlemoneromooo-monero1-4/+4
fixes massive amounts of time spent on pathological inputs Found by OSS-Fuzz
2020-08-16Merge pull request #6727Alexander Blair1-9/+31
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-16Merge pull request #6720Alexander Blair1-26/+0
86abf558c epee: Remove unused functions in local_ip.h (Jean Pierre Dudey)
2020-07-30epee: guard against exceptions in RPC handlersmoneromooo-monero1-9/+31
2020-07-22epee: Remove unused functions in local_ip.hJean Pierre Dudey1-26/+0
Signed-off-by: Jean Pierre Dudey <me@jeandudey.tech>
2020-07-20wallet2_api: implement runtime proxy configurationxiphon2-8/+1
2020-07-19Merge pull request #6516Alexander Blair2-7/+0
8656a8c9f remove double includes (sumogr)
2020-07-19Merge pull request #6512Alexander Blair5-5/+5
5ef0607da Update copyright year to 2020 (SomaticFanatic)
2020-05-31Fix boost <1.60 compilation and fix boost 1.73+ warningsLee Clagett2-11/+10
2020-05-11remove double includessumogr2-7/+0
2020-05-06Update copyright year to 2020SomaticFanatic5-5/+5
Update copyright year to 2020
2020-05-01Merge pull request #6446luigi11112-0/+11
e509ede trezor: adapt to new passphrase mechanism (ph4r05)
2020-04-27trezor: adapt to new passphrase mechanismDusan Klinec2-0/+11
- 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-15Allow wallet2.h to run in WebAssemblywoodser2-152/+111
- 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-04Merge pull request #6339luigi11112-2/+2
c61abf8 remove empty statements (shopglobal)
2020-03-31p2p: fix frequent weak_ptr exception on connectionmoneromooo-monero1-1/+6
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-12Merge pull request #6244Alexander Blair1-5/+16
352bd132 abstract_tcp_server2: guard against negative timeouts (moneromooo-monero)
2020-03-12Merge pull request #6243Alexander Blair1-6/+2
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-02-17remove empty statementsInterchained2-2/+2
Cleaning up a little around the code base.
2020-02-06Merge pull request #6182Alexander Blair1-1/+1
e896cca8 epee: reorder a couple init list fields to match declaration (moneromooo-monero)
2020-01-26epee: remove backward compatible endian specific address serializationmoneromooo-monero1-6/+2
2020-01-16Merge pull request #6143Alexander Blair1-0/+2
6efeefbc epee: set application/json MIME type on json errors (moneromooo-monero)
2019-12-16abstract_tcp_server2: guard against negative timeoutsmoneromooo-monero1-5/+16
2019-11-25epee: reorder a couple init list fields to match declarationmoneromooo-monero1-1/+1
This is a bug waiting to happen
2019-11-15epee: set application/json MIME type on json errorsmoneromooo-monero1-0/+2
2019-11-11epee: close connection when the peer has done somoneromooo-monero1-1/+7
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-10-24Merge pull request #6006luigi11111-2/+6
9f3be3b epee: use SO_REUSEADDR on non-Windows targets (xiphon)
2019-10-22epee: use SO_REUSEADDR on non-Windows targetsxiphon1-2/+6
2019-10-22Merge pull request #5996luigi11111-0/+1
23ba69e epee: fix SSL server handshake, run_one() can block, use poll_one() (xiphon)
2019-10-22Merge pull request #5986luigi11111-1/+1
1080136 abstract_tcp_server2: move 'Trying to connect' from error to debug (moneromooo-monero)
2019-10-18epee: fix SSL server handshake, run_one() can block, use poll_one()xiphon1-0/+1
2019-10-16Merge pull request #5911luigi11111-0/+5
e48dcb7 levin: armour against some 'should not happen' case (moneromooo-monero)
2019-10-15levin: armour against some "should not happen" casemoneromooo-monero1-0/+5
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-14Merge pull request #5947luigi11111-4/+2
c9cfbf7 epee: tcp server - set SO_LINGER instead of SO_REUSEADDR option (xiphon)
2019-10-14Merge pull request #5937luigi11111-1/+1
4b654f6 abstract_tcp_server2: log pointer, not contents, where appropriate (moneromooo-monero)
2019-10-14abstract_tcp_server2: move "Trying to connect" from error to debugmoneromooo-monero1-1/+1
and fix the message grammar
2019-10-08Merge pull request #5918luigi11112-2/+6
4371791 epee: implement handshake timeout for SSL connections (xiphon)
2019-10-08Merge pull request #5917luigi11111-1/+2
7d81850 epee: fix network timeouts in blocked_mode_client (xiphon)
2019-10-02epee: tcp server - set SO_LINGER instead of SO_REUSEADDR optionxiphon1-4/+2
2019-09-30Merge pull request #5910luigi11111-0/+5
1b91beb abstract_tcp_server2: fix lingering connections (moneromooo-monero)
2019-09-30Merge pull request #5893luigi11111-1/+13
Coverity fixes [3a81639, 1bd962d, 2825f07, d099658, d46f701, cd57a10] (anonimal)
2019-09-27abstract_tcp_server2: log pointer, not contents, where appropriatemoneromooo-monero1-1/+1
2019-09-17epee: implement handshake timeout for SSL connectionsxiphon2-2/+6
2019-09-16epee: fix network timeouts in blocked_mode_clientxiphon1-1/+2
2019-09-14Merge pull request #5898luigi11111-1/+1
73f22c4 depends: fix MacOS build with Clang 3.7.1 (vtnerd)
2019-09-12abstract_tcp_server2: fix lingering connectionsmoneromooo-monero1-0/+5
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-08depends: fix MacOS build with Clang 3.7.1Lee Clagett1-1/+1
2019-09-08epee: abstract_tcp_server2: resolve CID 203919 (DC.WEAK_CRYPTO)anonimal1-1/+13
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-04Fix IP address serialization on big endianmoneromooo-monero1-1/+15
IP addresses are stored in network byte order even on little endian hosts
2019-09-04epee: fix local/loopback checks on big endianmoneromooo-monero1-0/+7
IPv4 addresses are kept in network byte order in memory
2019-09-04Merge pull request #5824luigi11111-1/+1
2a41dc0 epee: fix connections not being properly closed in some instances (moneromooo-monero)
2019-08-19epee: fix connections not being properly closed in some instancesmoneromooo-monero1-1/+1
Fixed by Fixed by crCr62U0
2019-08-15Merge pull request #5674luigi11111-0/+24
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-15Merge pull request #5649luigi11112-2/+6
a182df2 Bans for RPC connections (hyc)
2019-07-31Add IPv6 supportThomas Winget6-64/+416
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-24Merge pull request #5531luigi11111-4/+8
9a6006b abstract_tcp_server2: move some things out of a lock (moneromooo-monero)
2019-07-24Merge pull request #5530luigi11111-2/+0
6abaaaa remove obsolete save_graph skeleton code (moneromooo-monero)
2019-07-24Merge pull request #5528luigi11111-1/+1
f61a315 net_utils: fix m_ssl type from time_t to bool (moneromooo-monero)
2019-07-17Added support for "noise" over I1P/Tor to mask Tx transmission.Lee Clagett7-61/+158
2019-07-16Add ref-counted buffer byte_slice. Currently used for sending TCP data.Lee Clagett7-147/+89
2019-08-20fix feature not introduced until boost 1.66Jethro Grassie1-1/+1
2019-07-16allow blocking whole subnetsmoneromooo-monero2-2/+49
2019-06-19p2p: close the right number of connections on setting max in/out peersmoneromooo-monero1-0/+24
2019-06-16Bans for RPC connectionsHoward Chu2-2/+6
Make bans control RPC sessions too. And auto-ban some bad requests. Drops HTTP connections whenever response code is 500.
2019-06-14abstract_tcp_server2: improve DoS resistancemoneromooo-monero1-4/+5
2019-06-11Merge pull request #5618luigi11111-6/+4
b0a04f7 epee: fix SSL autodetect on reconnection (xiphon)
2019-06-10epee: fix SSL autodetect on reconnectionxiphon1-6/+4
2019-06-09Fix GCC 9.1 build warningsmoneromooo-monero1-0/+5
GCC wants operator= aand copy ctor to be both defined, or neither
2019-05-22Add ssl_options support to monerod's rpc mode.Lee Clagett1-0/+38
2019-05-10abstract_tcp_server2: move some things out of a lockmoneromooo-monero1-4/+8
The lock is meant for the network throttle object only, and this should help coverity get unconfused
2019-05-10remove obsolete save_graph skeleton codemoneromooo-monero1-2/+0
2019-05-10net_utils: fix m_ssl type from time_t to boolmoneromooo-monero1-1/+1
2019-05-07net_ssl: SSL config tweaks for compatibility and securitymoneromooo-monero1-0/+3
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-04-26change SSL certificate fingerprint whitelisting from SHA1 to SHA-256moneromooo-monero1-0/+2
SHA1 is too close to bruteforceable
2019-04-24Merge pull request #5482Riccardo Spagni1-0/+1
9956500d net_helper: clear recv buffer on eof (moneromooo-monero)
2019-04-23net_helper: clear recv buffer on eofmoneromooo-monero1-0/+1
2019-04-22levin_protocol_handler_async: tune down preallocation a fair bitmoneromooo-monero1-1/+1
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-16Merge pull request #5445Riccardo Spagni1-0/+12
b18f0b10 wallet: new --offline option (moneromooo-monero)
2019-04-16Merge pull request #5436Riccardo Spagni1-3/+4
61d63900 net_helper: avoid unnecessary memcpy (moneromooo-monero)
2019-04-15wallet: new --offline optionmoneromooo-monero1-0/+12
It will avoid connecting to a daemon (so useful for cold signing using a RPC wallet), and not perform DNS queries.
2019-04-13net_helper: avoid unnecessary memcpymoneromooo-monero1-3/+4
2019-04-12abstract_tcp_server2: fix timeout on exitmoneromooo-monero2-2/+9
When closing connections due to exiting, the IO service is already gone, so the data exchange needed for a gracious SSL shutdown cannot happen. We just close the socket in that case.
2019-04-11epee: init a new ssl related variable in ctormoneromooo-monero1-0/+1
2019-04-11simplewallet: new net_stats commandmoneromooo-monero2-2/+30
displays total sent and received bytes
2019-04-07Enabling daemon-rpc SSL now requires non-system CA verificationLee Clagett1-0/+3
If `--daemon-ssl enabled` is set in the wallet, then a user certificate, fingerprint, or onion/i2p address must be provided.
2019-04-07Require manual override for user chain certificates.Lee Clagett1-1/+2
An override for the wallet to daemon connection is provided, but not for other SSL contexts. The intent is to prevent users from supplying a system CA as the "user" whitelisted certificate, which is less secure since the key is controlled by a third party.
2019-04-07Perform RFC 2818 hostname verification in client SSL handshakesLee Clagett2-2/+14
If the verification mode is `system_ca`, clients will now do hostname verification. Thus, only certificates from expected hostnames are allowed when SSL is enabled. This can be overridden by forcible setting the SSL mode to autodetect. Clients will also send the hostname even when `system_ca` is not being performed. This leaks possible metadata, but allows servers providing multiple hostnames to respond with the correct certificate. One example is cloudflare, which getmonero.org is currently using.
2019-04-07Require server verification when SSL is enabled.Lee Clagett1-0/+6
If SSL is "enabled" via command line without specifying a fingerprint or certificate, the system CA list is checked for server verification and _now_ fails the handshake if that check fails. This change was made to remain consistent with standard SSL/TLS client behavior. This can still be overridden by using the allow any certificate flag. If the SSL behavior is autodetect, the system CA list is still checked but a warning is logged if this fails. The stream is not rejected because a re-connect will be attempted - its better to have an unverified encrypted stream than an unverified + unencrypted stream.
2019-04-07Pass SSL arguments via one class and use shared_ptr instead of referenceLee Clagett7-111/+152
2019-04-06Change SSL certificate file list to OpenSSL builtin load_verify_locationLee Clagett6-23/+20
Specifying SSL certificates for peer verification does an exact match, making it a not-so-obvious alias for the fingerprints option. This changes the checks to OpenSSL which loads concatenated certificate(s) from a single file and does a certificate-authority (chain of trust) check instead. There is no drop in security - a compromised exact match fingerprint has the same worse case failure. There is increased security in allowing separate long-term CA key and short-term SSL server keys. This also removes loading of the system-default CA files if a custom CA file or certificate fingerprint is specified.
2019-04-06Merge pull request #5348Riccardo Spagni1-3/+3
59776a64 epee: some more minor JSON parsing speedup (moneromooo-monero)
2019-04-01Merge pull request #5327Riccardo Spagni2-1/+5
c23ea796 New interactive daemon command 'print_net_stats': Global traffic stats (rbrunner7)
2019-03-25epee: some more minor JSON parsing speedupmoneromooo-monero1-3/+3
2019-03-25Added socks proxy (tor/i2pd/kovri) support to walletLee Clagett4-75/+79
2019-03-24New interactive daemon command 'print_net_stats': Global traffic statsrbrunner72-1/+5
2019-03-21Merge pull request #5283Riccardo Spagni1-5/+6
16590294 abstract_tcp_server2: fix crashy race on socket shutdown (moneromooo-monero)
2019-03-21epee: fix build with boost 1.70.0moneromooo-monero1-5/+11
get_io_service was deprecated, and got removed
2019-03-19abstract_tcp_server2: fix crashy race on socket shutdownmoneromooo-monero1-5/+6
2019-03-17Merge pull request #5061Riccardo Spagni4-4/+4
1f2930ce Update 2019 copyright (binaryFate)
2019-03-08Fix startup errors with SSL cert generationHoward Chu1-1/+0
Use SSL API directly, skip boost layer
2019-03-05Update 2019 copyrightbinaryFate4-4/+4
2019-03-05epee: add SSL supportMartijn Otto6-19/+24
RPC connections now have optional tranparent SSL. An optional private key and certificate file can be passed, using the --{rpc,daemon}-ssl-private-key and --{rpc,daemon}-ssl-certificate options. Those have as argument a path to a PEM format private private key and certificate, respectively. If not given, a temporary self signed certificate will be used. SSL can be enabled or disabled using --{rpc}-ssl, which accepts autodetect (default), disabled or enabled. Access can be restricted to particular certificates using the --rpc-ssl-allowed-certificates, which takes a list of paths to PEM encoded certificates. This can allow a wallet to connect to only the daemon they think they're connected to, by forcing SSL and listing the paths to the known good certificates. To generate long term certificates: openssl genrsa -out /tmp/KEY 4096 openssl req -new -key /tmp/KEY -out /tmp/REQ openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT /tmp/KEY is the private key, and /tmp/CERT is the certificate, both in PEM format. /tmp/REQ can be removed. Adjust the last command to set expiration date, etc, as needed. It doesn't make a whole lot of sense for monero anyway, since most servers will run with one time temporary self signed certificates anyway. SSL support is transparent, so all communication is done on the existing ports, with SSL autodetection. This means you can start using an SSL daemon now, but you should not enforce SSL yet or nothing will talk to you.
2019-03-04default initialize rpc structuresmoneromooo-monero1-0/+14
2019-03-04Merge pull request #5162Riccardo Spagni2-6/+14
4d3b61a3 Use io_service::work in epee tcp server (Lee Clagett)
2019-03-04Merge pull request #5160Riccardo Spagni1-1/+1
7af4fbd4 epee: Add space after ':' in additional http response headers (Tom Smeding)
2019-03-04Merge pull request #5096Riccardo Spagni1-1/+2
7c3ade44 network_throttle: use circular_buffer where appropriate (moneromooo-monero)
2019-03-04Merge pull request #5091Riccardo Spagni1-1/+4
123fc2a2 i2p: initial support (Jethro Grassie)
2019-02-18epee: Add space after ':' in additional http response headersTom Smeding1-1/+1
2019-02-10Use io_service::work in epee tcp serverLee Clagett2-6/+14
2019-02-02epee: add SSL supportmoneromooo-monero8-198/+539
RPC connections now have optional tranparent SSL. An optional private key and certificate file can be passed, using the --{rpc,daemon}-ssl-private-key and --{rpc,daemon}-ssl-certificate options. Those have as argument a path to a PEM format private private key and certificate, respectively. If not given, a temporary self signed certificate will be used. SSL can be enabled or disabled using --{rpc}-ssl, which accepts autodetect (default), disabled or enabled. Access can be restricted to particular certificates using the --rpc-ssl-allowed-certificates, which takes a list of paths to PEM encoded certificates. This can allow a wallet to connect to only the daemon they think they're connected to, by forcing SSL and listing the paths to the known good certificates. To generate long term certificates: openssl genrsa -out /tmp/KEY 4096 openssl req -new -key /tmp/KEY -out /tmp/REQ openssl x509 -req -days 999999 -sha256 -in /tmp/REQ -signkey /tmp/KEY -out /tmp/CERT /tmp/KEY is the private key, and /tmp/CERT is the certificate, both in PEM format. /tmp/REQ can be removed. Adjust the last command to set expiration date, etc, as needed. It doesn't make a whole lot of sense for monero anyway, since most servers will run with one time temporary self signed certificates anyway. SSL support is transparent, so all communication is done on the existing ports, with SSL autodetection. This means you can start using an SSL daemon now, but you should not enforce SSL yet or nothing will talk to you.
2019-02-01network_throttle: use circular_buffer where appropriatemoneromooo-monero1-1/+2
2019-01-30i2p: initial supportJethro Grassie1-1/+4
2019-01-28Adding initial support for broadcasting transactions over TorLee Clagett5-98/+267
- Support for ".onion" in --add-exclusive-node and --add-peer - Add --anonymizing-proxy for outbound Tor connections - Add --anonymous-inbounds for inbound Tor connections - Support for sharing ".onion" addresses over Tor connections - Support for broadcasting transactions received over RPC exclusively over Tor (else broadcast over public IP when Tor not enabled).
2019-01-28rpc: fix internal daemon calls in restricted rpc getting partial datamoneromooo-monero1-6/+6
2019-01-22Pruningmoneromooo-monero2-2/+10
The blockchain prunes seven eighths of prunable tx data. This saves about two thirds of the blockchain size, while keeping the node useful as a sync source for an eighth of the blockchain. No other data is currently pruned. There are three ways to prune a blockchain: - run monerod with --prune-blockchain - run "prune_blockchain" in the monerod console - run the monero-blockchain-prune utility The first two will prune in place. Due to how LMDB works, this will not reduce the blockchain size on disk. Instead, it will mark parts of the file as free, so that future data will use that free space, causing the file to not grow until free space grows scarce. The third way will create a second database, a pruned copy of the original one. Since this is a new file, this one will be smaller than the original one. Once the database is pruned, it will stay pruned as it syncs. That is, there is no need to use --prune-blockchain again, etc.
2019-01-16Merge pull request #4976Riccardo Spagni6-40/+97
85665003 epee: better network buffer data structure (moneromooo-monero)
2018-12-31Merge pull request #4933luigi11112-2/+2
3cf85f0 Changed RECIEVED to RECEIVED in log messages. (normoes)
2018-12-23epee: better network buffer data structuremoneromooo-monero6-40/+97
avoids pointless allocs and memcpy
2018-12-04epee: fix network packet header field endiannessmoneromooo-monero4-53/+108
2018-12-04Merge pull request #4854Riccardo Spagni4-18/+4
bd98e99c Removed a lot of unnecessary includes (Martijn Otto)
2018-12-04Changed RECIEVED to RECEIVED in log messages.Norman Moeschter2-2/+2
2018-11-26Merge pull request #4819Riccardo Spagni2-6/+10
7c298f5d No longer use a list for registering self references in the abstract tcp server (Martijn Otto)
2018-11-16Merge pull request #4807Riccardo Spagni1-1/+6
b620443b epee: log HTTP/RPC calls at info level (moneromooo-monero)
2018-11-15Removed a lot of unnecessary includesMartijn Otto4-18/+4
2018-11-07No longer use a list for registering self references in the abstract tcpMartijn Otto2-6/+10
server Updated assert message Use a local variable that won't destruct at the end of the if-branch Updated comment
2018-11-06Merge pull request #3970Riccardo Spagni1-2/+4
3381b651 abstract_tcp_server2: fix busy calling of idle IO service (moneromooo-monero)