aboutsummaryrefslogtreecommitdiff
path: root/contrib (follow)
AgeCommit message (Collapse)AuthorFilesLines
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-08Merge pull request #5936luigi11111-2/+2
24473d7 build: fix MinGW GUI dependencies build (xiphon)
2019-10-08Merge pull request #5918luigi11113-5/+30
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 #5893luigi11112-1/+15
Coverity fixes [3a81639, 1bd962d, 2825f07, d099658, d46f701, cd57a10] (anonimal)
2019-09-30Merge pull request #5653luigi11111-28/+37
5f8524e Streamline build setup (hyc)
2019-09-27abstract_tcp_server2: log pointer, not contents, where appropriatemoneromooo-monero1-1/+1
2019-09-26build: fix MinGW GUI dependencies buildxiphon1-2/+2
2019-09-25Don't set ARCH_ID if it's already setHoward Chu1-3/+5
Usually it's unset, but depends toolchain files set it explicitly for cross-compiling. Don't override preset values. But make sure it's set for all x86 / x86_64 builds, not just Linux. Also make sure -std=c++11 is set for Darwin builds, not all submodules were getting it consistently before.
2019-09-24Streamline build setupHoward Chu1-28/+37
Use shorter, prefix-unique directory names gitian-builder -> builder gitian-sigs -> sigs monero-binaries -> out Just use builder/inputs/monero, no need for 2nd repo clone
2019-09-24epee: misc_log_ex.h can now be used in C codemoneromooo-monero2-11/+51
use mfatal/merror/mwarning/minfo/mdebug/mtrace
2019-09-24Merge pull request #5892luigi11114-7/+13
ab2819a depends: attempt to fix readline (iDunk5400)
2019-09-24Merge pull request #5891luigi11111-6/+6
e09dbc6 depends: fix monero binaries Boost linking errors (iDunk5400)
2019-09-24Merge pull request #5875luigi11111-0/+1
0c55837 contrib: add a suppressions file for leak sanitizer (moneromooo-monero)
2019-09-17epee: implement handshake timeout for SSL connectionsxiphon3-5/+30
2019-09-16epee: fix network timeouts in blocked_mode_clientxiphon1-1/+2
2019-09-16Properly format multiline logsmoneromooo-monero2-22/+58
As a side effect, colouring on Windows should now work regardless of version
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-09depends: fix monero binaries Boost linking errorsiDunk54001-6/+6
It would try to link against host system Boost libs when building outside gitian. Tested with x86_64-linux-gnu target.
2019-09-08Merge pull request #5858luigi11111-1/+1
5f4bd92 Fix Travis build on Windows + Mac (hyperreality)
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-07depends: attempt to fix readlineiDunk54004-7/+13
Make readline actually compile, and make ncurses use existing terminfo data (if available).
2019-09-06epee: connection_basic: resolve CID 203916 (UNINIT_CTOR)anonimal1-0/+1
2019-09-06epee: connection_basic: resolve CID 203920 (UNINIT_CTOR)anonimal1-0/+1
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-04storages: fix "portable" storage on big endianmoneromooo-monero4-3/+99
2019-09-04storages: fix writing varints on big endianmoneromooo-monero1-1/+1
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-09-04Merge pull request #5814luigi11111-91/+0
bdcdb0e Remove unused code under WINDWOS_PLATFORM guard (tomsmeding) a84aa04 syncobj.h no longer defines shared_guard, so remove those define's (tomsmeding)
2019-09-04Merge pull request #5796luigi11111-3/+3
e3cff3d Gitian build script fixes for MacOS (jonathancross)
2019-09-04Merge pull request #5764luigi11113-4/+4
f26e663 Gitian build (mac, linux): gzip => bzip2 (jonathancross)
2019-09-04Merge pull request #5536luigi11113-13/+88
1a367d6 simplewallet: lock console on inactivity (moneromooo-monero)
2019-08-29contrib: add a suppressions file for leak sanitizermoneromooo-monero1-0/+1
with the Cryptonight per-thread buffer
2019-08-28simplewallet: lock console on inactivitymoneromooo-monero3-13/+88
2019-08-27Fix Travis build on Windows + Machyperreality1-1/+1
Following 13c0b8c, the unwind package is being attempted to be built on Windows and Mac when it should only be built on Linux.
2019-08-23syncobj.h no longer defines shared_guard, so remove those define'sTom Smeding1-3/+0
The removed preprocessor macro's refer to types that are not defined in the file anymore; the only other place where shared_guard is defined is in winobj.h, which also defines the same macro's. Therefore, this change is safe. (Side note is that these macro's weren't used at all anyway, but that is orthogonal to the issue.)
2019-08-21Merge pull request #5827luigi11111-1/+1
30779de fix feature not introduced until boost 1.66 (jtgrassie)
2019-08-21Merge pull request #5702luigi11115-1/+16
13c0b8c Add depends riscv 64 bit support (TheCharlatan)
2019-08-20Add depends riscv 64 bit supportTheCharlatan5-1/+16
2019-08-20fix feature not introduced until boost 1.66Jethro Grassie1-1/+1
2019-08-19Merge pull request #5706luigi11113-3/+25
9a5933f Gitian: Add version string to output tar archives (TheCharlatan)
2019-08-19Merge pull request #5705luigi11111-4/+4
59eecc7 Update icu4c to latest support version (TheCharlatan)
2019-08-19epee: fix connections not being properly closed in some instancesmoneromooo-monero1-1/+1
Fixed by Fixed by crCr62U0
2019-08-16epee: support unicode in parsed stringsmoneromooo-monero2-22/+61
2019-08-15Merge pull request #5756luigi11111-38/+78
28c3e73 gitian build README improvements (jonathancross)
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-08-15Remove unused code under WINDWOS_PLATFORM guardTom Smeding1-88/+0
This code has been present, unchanged, ever since the original move to github in 2014 with commit 296ae46ed.
2019-08-06Gitian build script fixes for MacOSJonathan Cross1-3/+3
2019-07-31Add IPv6 supportThomas Winget8-67/+461
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-30gitian build README improvementsJonathan Cross1-38/+78
2019-07-24Merge pull request #5627luigi11112-21/+25
afbf05b Add option to run gitian-build.py on non-debian os (TheCharlatan)
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 #5530luigi11113-7/+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-18Gitian build (mac, linux): gzip => bzip2Jonathan Cross3-4/+4
2019-07-17Added support for "noise" over I1P/Tor to mask Tx transmission.Lee Clagett10-64/+289
2019-07-16Add ref-counted buffer byte_slice. Currently used for sending TCP data.Lee Clagett10-149/+445
2019-07-16allow blocking whole subnetsmoneromooo-monero3-2/+67
2019-07-12Merge pull request #5704luigi11111-3/+3
8f22279 Depends: Update HIDAPI version (TheCharlatan)
2019-06-27Gitian: Add version string to output tar archivesTheCharlatan3-3/+25
The tar archives generated by gitian are currently unversioned. This adds either a tag name when building from a tag, or a short commit id when building from a commit hash.
2019-06-27Depends: Update HIDAPI versionTheCharlatan1-3/+3
The macos binaries in release v0.14.1.0 were compiled with the buggy hidapi-0.8.0-rc1 version. This resulted in users not being able to use their Ledger with the latest cli wallet. After the patch depends now fetches the source from the libusb hidapi repository that has taken over maintenance of hidapi.
2019-06-27Update icu4c to latest support versionTheCharlatan1-9/+4
Before this commit the icu4c repo was fetched from TheCharlatan's repository. This step was made, because up until recently the source code was hosted on sourceforge and their downloads proved very unreliable. The origin is now the official icu4c repository. Also remove some commented lines left over from development.
2019-06-26Add option to run gitian-build.py on non-debian osTheCharlatan2-21/+25
This commits adds the `--no-apt` flag to the gitian-build.py script. This allows gitian builds to be run without root access and non-debian based operating systems.
2019-06-25Add ncurses package for linux and darwin readlineTheCharlatan4-14/+69
Readline support is now compiled with the ncurses backend.
2019-06-25Remove clutter in depends installed packagesTheCharlatan12-9/+42
To speedup the depends cached builds, remove some some clutter from the package files. This mainly incldues removing all the shared libraries and .la linker files. It also gives stronger guarantees that monero only links the static libs without any external rvalues.
2019-06-25Add debug targets to depends MakefileTheCharlatan2-0/+10
Packages can now be built individually and for each stage. This allows easier debugging.
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-14ensure no NULL is passed to memcpymoneromooo-monero2-6/+14
NULL is valid when size is 0, but memcpy uses nonnull attributes, so let's not poke the bear
2019-06-14abstract_tcp_server2: improve DoS resistancemoneromooo-monero1-4/+5
2019-06-14epee: basic sanity check on allocation size from untrusted sourcemoneromooo-monero1-0/+1
Reported by guidov
2019-06-12Merge pull request #5632luigi11115-4/+8
3a0fbea Don't use -march=native (hyc) f8b2f25 Allow parallel make (hyc) 01ced20 Delete redundant cppzmq dependency (hyc) 1dc4ebf Use 9 digit build IDs (hyc)
2019-06-12Merge pull request #5552luigi11111-2/+2
c27d961 [depends] update openssl to 1.0.2r (who-biz)
2019-06-12Use 9 digit build IDsHoward Chu3-0/+3
2019-06-12Delete redundant cppzmq dependencyHoward Chu1-1/+1
2019-06-12Allow parallel makeHoward Chu3-3/+3
2019-06-12Don't use -march=nativeHoward Chu1-0/+1
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-18[depends] update openssl to 1.0.2rwho-biz1-2/+2
- This addresses https://www.openssl.org/news/secadv/20190226.txt (CVE: 2019-1559) which impacted all versions of openssl-1.0. Note that this does not address CVE-2019-1543 (https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-1543), which impacts all versions of openssl 1.1 through 1.1.0j and 1.1.1b. The above (1.1) is patched in openssl, where it was marked as low severity. Similar issues possibly present in monero, should be looked into w.r.t. CVE-2019-1543.
2019-05-15Merge pull request #5539Riccardo Spagni3-108/+138
3f612cda Changed odd bullet point to low level header (Rohaq) af9bc4ec Used subeaders to avoid slightly wonky looking formatting (Rohaq) 1873af35 Made code block usage consistent across all .md files (Rohaq) 68103075 Updated Copyright notice (Rohaq) 39bd157f Added Table of Contents to main README.md (Rohaq)
2019-05-14Merge pull request #5527luigi11111-2/+2
9a7a453 net_ssl: free certs after setting them up (moneromooo-monero)
2019-05-14Merge pull request #5519luigi11111-1/+1
b8b957d cmake: fix incorrect hint for OPENSSL_ROOT_DIR (moneromooo-monero) 367bb80 mlog: default to not showing SSL errors (moneromooo-monero)
2019-05-12Made code block usage consistent across all .md filesRohaq3-108/+138
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-monero3-7/+0
2019-05-10net_utils: fix m_ssl type from time_t to boolmoneromooo-monero1-1/+1
2019-05-10net_ssl: free certs after setting them upmoneromooo-monero1-2/+2
2019-05-07Merge pull request #5509Riccardo Spagni2-4/+128
a62e0725 net_ssl: SSL config tweaks for compatibility and security (moneromooo-monero)
2019-05-07Merge pull request #5499Riccardo Spagni1-0/+236
a4c4a2d8 blockchain: keep a rolling long term block weight median (moneromooo-monero)
2019-05-07Merge pull request #5419Riccardo Spagni6-5/+87
f29fecd5 build: debug and test builds via contrib (Dusan Klinec)
2019-05-07net_ssl: SSL config tweaks for compatibility and securitymoneromooo-monero2-4/+128
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-06mlog: default to not showing SSL errorsmoneromooo-monero1-1/+1
2019-05-02blockchain: keep a rolling long term block weight medianmoneromooo-monero1-0/+236
2019-04-26change SSL certificate fingerprint whitelisting from SHA1 to SHA-256moneromooo-monero2-1/+3
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-24Merge pull request #5479Riccardo Spagni1-1/+1
edbae2d0 levin_protocol_handler_async: tune down preallocation a fair bit (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-21serialization: set default log categorymoneromooo-monero3-1/+7
2019-04-18epee: use boost/timer/timer.hpp, boost/timer.hpp is deprecatedmoneromooo-monero1-1/+1
2019-04-16Merge pull request #5447Riccardo Spagni1-0/+34
02c01c0b Add Brewfile to allow for an even easier management of dependencies (Florian)
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-16Merge pull request #5432Riccardo Spagni2-2/+9
c3cf930f abstract_tcp_server2: fix timeout on exit (moneromooo-monero)
2019-04-15Add Brewfile to allow for an even easier management of dependenciesFlorian1-0/+34
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-15Merge pull request #5369Riccardo Spagni2-2/+2
e72c2c5d do not build in parallel as it is non-deterministic (Jane Mercer)
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-10build: debug and test builds via contribDusan Klinec6-5/+87
2019-04-07Enabling daemon-rpc SSL now requires non-system CA verificationLee Clagett2-0/+22
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 Clagett2-1/+5
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-07Only check top-level certificate against fingerprint list.Lee Clagett1-2/+4
This allows "chain" certificates to be used with the fingerprint whitelist option. A user can get a system-ca signature as backup while clients explicitly whitelist the server certificate. The user specified CA can also be combined with fingerprint whitelisting.
2019-04-07Call `use_certificate_chain_file` instead of `use_certificate_file`Lee Clagett1-1/+1
The former has the same behavior with single self signed certificates while allowing the server to have separate short-term authentication keys with long-term authorization keys.
2019-04-07Perform RFC 2818 hostname verification in client SSL handshakesLee Clagett3-5/+26
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 Clagett2-11/+16
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-07Add `verify_fail_if_no_cert` option for proper client authenticationLee Clagett1-1/+1
Using `verify_peer` on server side requests a certificate from the client. If no certificate is provided, the server silently accepts the connection and rejects if the client sends an unexpected certificate. Adding `verify_fail_if_no_cert` has no affect on client and for server requires that the peer sends a certificate or fails the handshake. This is the desired behavior when the user specifies a fingerprint or CA file.
2019-04-07Pass SSL arguments via one class and use shared_ptr instead of referenceLee Clagett9-167/+229
2019-04-06Do not require client certificate unless server has some whitelisted.Lee Clagett1-12/+27
Currently a client must provide a certificate, even if the server is configured to allow all certificates. This drops that requirement from the client - unless the server is configured to use a CA file or fingerprint(s) for verification - which is the standard behavior for SSL servers. The "system-wide" CA is not being used as a "fallback" to verify clients before or after this patch.
2019-04-06Change SSL certificate file list to OpenSSL builtin load_verify_locationLee Clagett7-76/+65
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 #5375Riccardo Spagni1-0/+1
1569776a Add missing include (Leon Klingele)
2019-04-06Merge pull request #5358Riccardo Spagni1-7/+40
dffdccdc No longer use deprecated RSA_generate_key in favor of RSA_generate_key_ex (Martijn Otto)
2019-04-06Merge pull request #5348Riccardo Spagni4-8/+11
59776a64 epee: some more minor JSON parsing speedup (moneromooo-monero)
2019-04-01Merge pull request #5327Riccardo Spagni3-1/+15
c23ea796 New interactive daemon command 'print_net_stats': Global traffic stats (rbrunner7)
2019-04-01Merge pull request #5309Riccardo Spagni1-0/+1
43042a28 Implement array_entry_t copy constructor (Guido Vranken)
2019-03-31Add missing includeLeon Klingele1-0/+1
2019-03-29do not build in parallel as it is non-deterministicJane Mercer2-2/+2
2019-03-27No longer use deprecated RSA_generate_key in favor ofMartijn Otto1-7/+40
RSA_generate_key_ex
2019-03-25epee: some more minor JSON parsing speedupmoneromooo-monero4-8/+11
2019-03-25Added socks proxy (tor/i2pd/kovri) support to walletLee Clagett6-76/+135
2019-03-24Merge pull request #5285Riccardo Spagni1-0/+1
6ef816de console_handler: print newline on EOF (moneromooo-monero)
2019-03-24New interactive daemon command 'print_net_stats': Global traffic statsrbrunner73-1/+15
2019-03-21Merge pull request #5283Riccardo Spagni1-5/+6
16590294 abstract_tcp_server2: fix crashy race on socket shutdown (moneromooo-monero)
2019-03-21Merge pull request #5259Riccardo Spagni1-1/+0
9141a0a1 connection_basic: remove debug exception ^_^ (moneromooo-monero)
2019-03-21epee: fix build with boost 1.70.0moneromooo-monero2-7/+19
get_io_service was deprecated, and got removed
2019-03-19abstract_tcp_server2: fix crashy race on socket shutdownmoneromooo-monero1-5/+6
2019-03-18Implement array_entry_t copy constructorGuido Vranken1-0/+1
Manually initialize the array_entry_t iterator to ensure it points to the correct m_array, thereby preventing a potential use-after-free situation. Signed-off-by: Guido Vranken <guidovranken@gmail.com>
2019-03-17Merge pull request #5061Riccardo Spagni19-19/+19
1f2930ce Update 2019 copyright (binaryFate)
2019-03-13console_handler: print newline on EOFmoneromooo-monero1-0/+1
This avoids the annoying case where the shell prints its prompt after the last line from Monero output, causing line editing to sometimes go wonky, for lack of a better term
2019-03-10epee: certificate generation fix, pkey deletedDusan Klinec1-3/+5
- pkey gets deleted by the pkey_deleter but the caller tries to serialize it which causes errors as the memory is freed
2019-03-08connection_basic: remove debug exception ^_^moneromooo-monero1-1/+0
2019-03-08Fix startup errors with SSL cert generationHoward Chu2-38/+6
Use SSL API directly, skip boost layer
2019-03-05Update 2019 copyrightbinaryFate19-19/+19
2019-03-05epee: add SSL supportMartijn Otto9-43/+152
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-05cmake: ARCH_ID fixes for cross compilationTheCharlatan1-0/+7
2019-03-04default initialize rpc structuresmoneromooo-monero4-9/+35
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 #5146Riccardo Spagni3-19/+61
4a9257b4 Support docker for gitian builds (TheCharlatan)
2019-03-04Merge pull request #5136Riccardo Spagni1-10/+2
7da7a9bb Update openssl to 1.0.2q in depends build system (who-biz)
2019-03-04Merge pull request #5133Riccardo Spagni9-316/+11
f0fc4064 Various speedups to depends and Travis (TheCharlatan)
2019-03-04Merge pull request #5113Riccardo Spagni1-0/+1
c0e9e805 Fixed missing return value in once_a_time class on windows (Markus Behm)
2019-03-04Merge pull request #5102Riccardo Spagni2-0/+417
1eef0565 performance_tests: better stats, and keep track of timing history (moneromooo-monero)
2019-03-04Merge pull request #5096Riccardo Spagni2-4/+5
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-23Various speedups to depends and TravisTheCharlatan9-316/+11
Further speedups to icu compilation, it is faster to run the pre-generated configure scripts. Ensure that the native protobuf installation only generates the required libraries and binaries. Disable qt compilation when running travis on windows. Qt is used for lrelease, the travis recipe instead usese the a local installation of lrelease. Remove various packages and options from the travis recipe. Update Readline to version 8.0. The previously used url 404'd sometimes, use the official gnu ftp server instead. Remove unused cmake config.
2019-02-18epee: Add space after ':' in additional http response headersTom Smeding1-1/+1
2019-02-14Support docker for gitian buildsTheCharlatan3-19/+61
Building with docker is arguably easier and more familiar to most people than either kvm, or lxc. This commit also relaxes the back compat requirement a bit. 32 bit linux now uses glibc version 2.0. Also, the docker shell could not handle gcc arguments containing spaces, so the explicit '-DFELT_TYPE' declaration was dropped. Lastly, this removes some packages from the osx descriptor.
2019-02-10Use io_service::work in epee tcp serverLee Clagett2-6/+14
2019-02-10Update openssl to 1.0.2q in depends build systemwho-biz1-10/+2
2019-02-09Fixed missing return value in once_a_time class on windowsMarkus Behm1-0/+1
2019-02-02epee: add SSL supportmoneromooo-monero11-208/+896
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-monero2-4/+5
2019-01-30i2p: initial supportJethro Grassie1-1/+4
2019-01-28Adding initial support for broadcasting transactions over TorLee Clagett7-126/+309
- 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-28Merge pull request #5062Riccardo Spagni1-6/+6
acfff8d0 rpc: fix internal daemon calls in restricted rpc getting partial data (moneromooo-monero)
2019-01-28rpc: fix internal daemon calls in restricted rpc getting partial datamoneromooo-monero1-6/+6
2019-01-28Merge pull request #5073Riccardo Spagni3-6/+6
45ea19fa bump sodium to 1.0.16 (italocoin)
2019-01-28Merge pull request #5065Riccardo Spagni1-2/+2
ca86ef1b readline: don't dereference possible NULL pointer (Jethro Grassie)
2019-01-28performance_tests: better stats, and keep track of timing historymoneromooo-monero2-0/+417
2019-01-22Pruningmoneromooo-monero4-2/+29
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-21readline: don't dereference possible NULL pointerJethro Grassie1-2/+2
2019-01-18Merge pull request #5017Riccardo Spagni2-45/+89
21777daf epee: speedup word/number matching (moneromooo-monero)
2019-01-17Optimize the depends builds for faster compilationTheCharlatan5-67/+7
This includes more fine grained configure options and skipping the openssl and zlib dependencies when compiling qt. The zlib and libevent packages are removed.
2019-01-16epee: speedup word/number matchingmoneromooo-monero2-45/+89
Number matching semantics are slightly changed: since this is used as a filter to check whether a number is signed and/or floating point, we can speed this up further. strto* functions are called afterwards and will error out where necessary. We now also accept numbers like .4 which were not accepted before. The strto* calls on a boost::string_ref will not access unallocated memory since the parsers always stop at the first bad character, and the original string is zero terminated. in arbitrary time measurement units for some arbitrary test case: match_number2: 235 -> 70 match_word2: 330 -> 108
2019-01-16Merge pull request #5022Riccardo Spagni1-1/+1
37a9bcf4 Remove visibility settings from boost.mk (TheCharlatan)
2019-01-16Merge pull request #5021Riccardo Spagni2-3/+13
b82efa32 epee: speed up json parsing (moneromooo-monero)
2019-01-16Merge pull request #5001Riccardo Spagni2-32/+4
a5ffc2d5 Remove boost::lexical_cast for uuid and unused uuid function (Lee Clagett)
2019-01-16Merge pull request #4976Riccardo Spagni13-55/+226
85665003 epee: better network buffer data structure (moneromooo-monero)
2019-01-15bump sodium to 1.0.16italocoin3-6/+6
2019-01-06Merge pull request #4951Riccardo Spagni1-0/+3
b21a60ef mlocker: set default log category (moneromooo-monero)
2019-01-06Merge pull request #4950Riccardo Spagni1-8/+15
68f045de easylogging++: check allowed categories before logging (moneromooo-monero)
2019-01-06Merge pull request #4949Riccardo Spagni1-9/+30
5464725a protocol: change standby mode to not wait sleeping (moneromooo-monero) 85807dfb add a once_a_time_milliseconds class (moneromooo-monero)
2019-01-06Merge pull request #4938Riccardo Spagni2-38/+18
a13eb0a1 epee: speed up string matching a bit (moneromooo-monero) 3a3858dc epee: avoid string allocation when parsing a pod from string (moneromooo-monero)
2018-12-31Merge pull request #4957luigi11111-1/+1
0e2f5cb perf_timer: make all logs Info level (moneromooo-monero)
2018-12-31Merge pull request #4945luigi11115-9/+61
e37154a build: protobuf dependency fixes, libusb build (ph4r05)
2018-12-31Merge pull request #4933luigi11112-2/+2
3cf85f0 Changed RECIEVED to RECEIVED in log messages. (normoes)
2018-12-31Merge pull request #4929luigi11112-164/+1
5a76933 Add glibc back compat code (TheCharlatan)