aboutsummaryrefslogtreecommitdiff
path: root/src/common (unfollow)
AgeCommit message (Collapse)AuthorFilesLines
2023-12-19Cleanup scoped_ptr in src/common/dns_utils.cpp and header include:0xFFFC00001-34/+10
* No need for entire new class (Fix #8732). * Fix stdint.h header include in contrib/epee/include/net/http_base.h.
2023-07-03common: do not use DNS to determine if address is localtobtoht1-20/+15
Co-authored-by: j-berman <justinberman@protonmail.com>
2023-06-27Fixup error message.ComputeryPony1-0/+2
Looks like the extra MWARNING was supposed to be guarded by the if statement.
2023-06-08Speed up perf_timer init on x86SChernykh1-1/+1
All Monero binaries have 1 second startup delay because of this code. This is especially noticeable and affects UX in Monero GUI wallet with local node where it often starts another monerod instance to run commands and query node status.
2023-05-10daemon: remove os-versiontobtoht1-272/+0
2023-05-06fix missing <cstdint> includestobtoht1-0/+1
2023-03-27Message about DNS_PUBLIC to help users with issue #8452OrvilleRed1-0/+1
2023-02-12variant: add mutable unwrap and visitationkoe1-7/+18
2023-01-30add variant class with cleaner interface than boost::variant<>koe2-0/+159
2023-01-16Copyright: Update to 2023mj-xmr47-47/+47
Co-authored-by: plowsof <plowsof@protonmail.com> extra files
2023-01-01util: make GMT timestamps explicit for claritymoneromooo-monero1-1/+1
For privacy reasons, time functions use GMT, to avoid logs leaking timezones. It'd make more sense to use localtime for wallet output (which are not logged by default), but that adds inconsistencies which can also be confusing. So add a Z suffix for now to make it clear these are not local time.
2022-12-29revisionskoe1-16/+24
2022-12-24vtnerd review commentskoe1-19/+60
2022-12-22common: move boost_serialization_helper.h out and cleanup includesJeffrey Ryan1-124/+0
2022-12-20Cache successful `verRctNonSemanticsSimple` callsSChernykh1-0/+65
2022-12-19add compare_func() method so user-defined comparison functions are easier to usekoe1-0/+14
2022-12-18common: add missing includesselsta2-0/+3
2022-12-18adjust is_sorted_and_unique()koe1-12/+11
2022-12-15comment updateskoe1-1/+3
2022-12-01add container helperskoe1-0/+106
2022-11-21common: DNSResolver can handle hostnames without dot charactersJeffrey Ryan2-24/+0
Unrelated, but similar code-wise to #8643. There is a check in `DNSResolver` which automatically fails to resolve hostnames which do not contain the `.` character. This PR removes that check.
2022-09-20Second thread pool for IOSChernykh2-2/+6
2022-08-06dns_util: remove outdated DNSSEC DS trust anchorselsta1-1/+0
2022-05-18common: update sha256sum to use OpenSSL 3.0 APIJeffrey Ryan2-13/+26
As of OpenSSL 3.0, `SHA256_Init`, `SHA256_Update`, and `SHA256_Final` are deprectaed in favor of the higher-level `EVP_*` class of functions. This causes compiler warnings, and sooner or later, will cause build errors as these functions are excluded from distro headers. Also add some documentation.
2022-04-18Merge functionality of misc_os_dependent into time_helper.hJeffrey2-2/+2
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-06CMake: Add missing headers via monero_find_all_headers macromj-xmr1-30/+1
2022-03-04Copyright: Update to 2022mj-xmr48-48/+61
2021-10-10download: fix leakmoneromooo-monero1-1/+9
A shared_ptr as by value capture will keep the object alive
2021-09-03external: remove unbound submoduleselsta1-1/+1
2021-07-27Daemon: Update average block size tablerbrunner71-2/+6
2021-03-28Reduce compilation time of epee/portable_storage_template_helper.hmj-xmr1-0/+4
2020-12-22restrict public node checks a littlemoneromooo-monero2-1/+11
do not include blocked hosts in peer lists or public node lists by default, warn about no https on clearnet and about untrusted peers likely being spies
2020-10-20util: fix escaping more than one ?* in glob_to_regexmoneromooo-monero1-3/+3
2020-10-20Make Blockchain::get_fee_quantization_mask() compile timeSChernykh1-0/+26
This also removes potential thread safety bug in that function.
2020-10-15add more updates domains and make the voting generic, not just 2/3moneromooo-monero2-42/+25
2020-10-07Add TLSA support to DNSSEC fetchingLee Clagett2-6/+44
2020-09-01threadpool: guard against exceptions in jobs, and armour platingmoneromooo-monero3-9/+14
Those would, if uncaught, exit run and leave the waiter to wait indefinitely for the number of active jobs to reach 0
2020-06-25util: fix kilo prefix typo (K instead of k)moneromooo-monero1-1/+1
2020-06-22updates: mac gui .tar.bz2 -> .dmgselsta1-0/+2
2020-05-24easylogging++: sanitize log payloadmoneromooo-monero2-1/+116
Some of it might be coming from untrusted sources Reported by itsunixiknowthis
2020-05-19easylogging++: sanitize log payloadmoneromooo-monero2-1/+116
Some of it might be coming from untrusted sources Reported by itsunixiknowthis
2020-05-06Update copyright year to 2020SomaticFanatic35-35/+35
Update copyright year to 2020
2020-05-04Adding ZMQ/Pub support for txpool_add and chain_main eventsLee Clagett2-2/+7
2020-03-21Daemon: Print estimates for time until fully syncedrbrunner72-9/+108
2020-02-12threadpool: lock mutex in createmoneromooo-monero1-0/+1
In some contrived case, it might theoretically be the case that destroy is called from another thread, which would modify the threads array from two threads. Coverity 208372
2019-11-26download: catch exceptions checking for sizemoneromooo-monero1-5/+9
Happens on at least one windows box
2019-11-25util: allow newlines in string to be splitmoneromooo-monero1-1/+14
2019-11-25updates: fix source code URL on _WIN32selsta1-1/+1
2019-11-15threadpool: use std::move when taking an element off the queuemoneromooo-monero1-1/+1
It has a std::function, which can have a capture context, and the function runtime might be small
2019-11-13perf_timer: fix pause/resume macros dereferencing too muchmoneromooo-monero1-2/+2
2019-11-10core_tests: reset thread pool between testsmoneromooo-monero2-7/+27
Avoids a DB error (leading to an assert) where a thread uses a read txn previously created with an environment that was since closed and reopened. While this usually works since BlockchainLMDB renews txns if it detects the environment has changed, this will not work if objects end up being allocated at the same address as the previous instance, leading to stale data usage. Thanks hyc for the LMDB debugging.
2019-10-25daemon, wallet: new pay for RPC use systemmoneromooo-monero1-6/+7
Daemons intended for public use can be set up to require payment in the form of hashes in exchange for RPC service. This enables public daemons to receive payment for their work over a large number of calls. This system behaves similarly to a pool, so payment takes the form of valid blocks every so often, yielding a large one off payment, rather than constant micropayments. This system can also be used by third parties as a "paywall" layer, where users of a service can pay for use by mining Monero to the service provider's address. An example of this for web site access is Primo, a Monero mining based website "paywall": https://github.com/selene-kovri/primo This has some advantages: - incentive to run a node providing RPC services, thereby promoting the availability of third party nodes for those who can't run their own - incentive to run your own node instead of using a third party's, thereby promoting decentralization - decentralized: payment is done between a client and server, with no third party needed - private: since the system is "pay as you go", you don't need to identify yourself to claim a long lived balance - no payment occurs on the blockchain, so there is no extra transactional load - one may mine with a beefy server, and use those credits from a phone, by reusing the client ID (at the cost of some privacy) - no barrier to entry: anyone may run a RPC node, and your expected revenue depends on how much work you do - Sybil resistant: if you run 1000 idle RPC nodes, you don't magically get more revenue - no large credit balance maintained on servers, so they have no incentive to exit scam - you can use any/many node(s), since there's little cost in switching servers - market based prices: competition between servers to lower costs - incentive for a distributed third party node system: if some public nodes are overused/slow, traffic can move to others - increases network security - helps counteract mining pools' share of the network hash rate - zero incentive for a payer to "double spend" since a reorg does not give any money back to the miner And some disadvantages: - low power clients will have difficulty mining (but one can optionally mine in advance and/or with a faster machine) - payment is "random", so a server might go a long time without a block before getting one - a public node's overall expected payment may be small Public nodes are expected to compete to find a suitable level for cost of service. The daemon can be set up this way to require payment for RPC services: monerod --rpc-payment-address 4xxxxxx \ --rpc-payment-credits 250 --rpc-payment-difficulty 1000 These values are an example only. The --rpc-payment-difficulty switch selects how hard each "share" should be, similar to a mining pool. The higher the difficulty, the fewer shares a client will find. The --rpc-payment-credits switch selects how many credits are awarded for each share a client finds. Considering both options, clients will be awarded credits/difficulty credits for every hash they calculate. For example, in the command line above, 0.25 credits per hash. A client mining at 100 H/s will therefore get an average of 25 credits per second. For reference, in the current implementation, a credit is enough to sync 20 blocks, so a 100 H/s client that's just starting to use Monero and uses this daemon will be able to sync 500 blocks per second. The wallet can be set to automatically mine if connected to a daemon which requires payment for RPC usage. It will try to keep a balance of 50000 credits, stopping mining when it's at this level, and starting again as credits are spent. With the example above, a new client will mine this much credits in about half an hour, and this target is enough to sync 500000 blocks (currently about a third of the monero blockchain). There are three new settings in the wallet: - credits-target: this is the amount of credits a wallet will try to reach before stopping mining. The default of 0 means 50000 credits. - auto-mine-for-rpc-payment-threshold: this controls the minimum credit rate which the wallet considers worth mining for. If the daemon credits less than this ratio, the wallet will consider mining to be not worth it. In the example above, the rate is 0.25 - persistent-rpc-client-id: if set, this allows the wallet to reuse a client id across runs. This means a public node can tell a wallet that's connecting is the same as one that connected previously, but allows a wallet to keep their credit balance from one run to the other. Since the wallet only mines to keep a small credit balance, this is not normally worth doing. However, someone may want to mine on a fast server, and use that credit balance on a low power device such as a phone. If left unset, a new client ID is generated at each wallet start, for privacy reasons. To mine and use a credit balance on two different devices, you can use the --rpc-client-secret-key switch. A wallet's client secret key can be found using the new rpc_payments command in the wallet. Note: anyone knowing your RPC client secret key is able to use your credit balance. The wallet has a few new commands too: - start_mining_for_rpc: start mining to acquire more credits, regardless of the auto mining settings - stop_mining_for_rpc: stop mining to acquire more credits - rpc_payments: display information about current credits with the currently selected daemon The node has an extra command: - rpc_payments: display information about clients and their balances The node will forget about any balance for clients which have been inactive for 6 months. Balances carry over on node restart.
2019-09-16Properly format multiline logsmoneromooo-monero1-1/+1
As a side effect, colouring on Windows should now work regardless of version
2019-08-28simplewallet: lock console on inactivitymoneromooo-monero2-0/+164
2019-06-21Remove Xiala.net from the list of dns resolverstobtoht1-1/+0
It is down permanently. See: https://xiala.net/ "Ende November 2018 werden alle Dienste von xiala.net abgeschaltet."
2019-06-01daemon: add more chain specific info in alt_chain_infomoneromooo-monero2-0/+19
2019-05-22Add ssl_options support to monerod's rpc mode.Lee Clagett1-1/+3
2019-05-10password: do not use line input on windowsmoneromooo-monero1-5/+1
This keeps its builtin command editing away Thanks iDunk for testing on Windows
2019-04-18Windows: fix a build error in MSYS2 with boost 1.70.0iDunk54001-0/+3
2019-04-07build fix: combinator.h stdexcept missing includeDusan Klinec1-0/+1
2019-04-04crypto: replace rand<T>()%N idiom with unbiased rand_idx(N)stoffu1-5/+2
2019-03-29util: name replace_file arguments bettermoneromooo-monero2-5/+5
It was confusing unless you read code and the rename(2) man page.
2019-03-24perf_timer: move some debug levels to info for consistencymoneromooo-monero1-3/+3
2019-03-24New interactive daemon command 'print_net_stats': Global traffic statsrbrunner72-0/+38
2019-03-20dns_utils: really add default DNSSEC servers on failuremoneromooo-monero1-3/+2
Coverity 196597
2019-03-17Use threadpool instead of new threads for DNS queriesHoward Chu1-5/+5
2019-03-07timings: fix errno.h mispelt as error.hmoneromooo-monero1-1/+1
2019-03-05Update 2019 copyrightbinaryFate35-35/+35
2019-03-04notify: fix tokenizing being too strictmoneromooo-monero1-1/+1
2019-02-27dns_utils: use fallback if the default resolver does not support DNSSECmoneromooo-monero1-6/+34
2019-02-25discontinue use of allocamoneromooo-monero1-2/+2
NetBSD emits: warning: Warning: reference to the libc supplied alloca(3); this most likely will not work. Please use the compiler provided version of alloca(3), by supplying the appropriate compiler flags (e.g. not -std=c89). and man 3 alloca says: Normally, gcc(1) translates calls to alloca() with inlined code. This is not done when either the -ansi, -std=c89, -std=c99, or the -std=c11 option is given and the header <alloca.h> is not included. Otherwise, (without an -ansi or -std=c* option) the glibc version of <stdlib.h> includes <alloca.h> and that contains the lines: #ifdef __GNUC__ #define alloca(size) __builtin_alloca (size) #endif It looks like alloca is a bad idea in modern C/C++, so we use VLAs for C and std::vector for C++.
2019-02-21dns_utils: remove MoneroPulse/checkpoints mention in TXT record codemoneromooo-monero1-4/+4
This code is used for more than just these
2019-02-14Support docker for gitian buildsTheCharlatan1-1/+1
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-02epee: add SSL supportmoneromooo-monero1-2/+2
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-01-28notify: handle arbitrary tagsmoneromooo-monero2-4/+20
2019-01-28notify: warn if the spec contains one of '"\moneromooo-monero1-0/+2
These aren't processed as a shell does, so this may surprise users
2019-01-28common: set MONERO_DEFAULT_LOG_CATEGORY for notify and spawnmoneromooo-monero2-0/+6
2019-01-28performance_tests: better stats, and keep track of timing historymoneromooo-monero4-0/+162
2019-01-22Pruningmoneromooo-monero4-1/+171
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-08i18n: filter LANG/LC_LANG for valid characters, and handle @moneromooo-monero1-0/+14
If there are more valid characters, add them in, I did not find an actual list.
2018-12-12MMS (Multisig Messaging System): Initial versionrbrunner72-0/+14
2018-12-08ignore child process when execJethro Grassie1-0/+4
2018-12-08perf_timer: make all logs Info levelmoneromooo-monero1-1/+1
and make them not default at log level 1
2018-12-07perf_timer: check allowed categories before loggingmoneromooo-monero1-8/+21
2018-12-07perf_timer: add a way to get and reset the current timemoneromooo-monero2-2/+18
2018-12-07perf_timer: only log to filemoneromooo-monero1-3/+6
2018-12-06util: use fcntl instead of flock, for compatibilitymoneromooo-monero1-3/+26
in particular with NFS
2018-12-05util: set MONERO_DEFAULT_LOG_CATEGORYmoneromooo-monero1-0/+3
Otherwise it'd end up with whatever was included last
2018-12-04move int-util.h to epeemoneromooo-monero2-259/+0
2018-12-04Add glibc back compat codeTheCharlatan2-0/+102
To ensure that the binaries compiled by gitian run across many linux distributions, enforce 2.17 as the minimum libc version supported.
2018-11-23remove some unused codemoneromooo-monero1-1/+1
Found by codacy.com
2018-11-23a few minor (but easy) performance tweaksmoneromooo-monero2-2/+2
Found by codacy.com
2018-11-21scoped_message_writer: protect all std::cout usage from readlinemoneromooo-monero1-1/+1
2018-11-20Fix issue 4793 - M/N multisig transaction signaturenaughtyfox3-2/+150
2018-11-15Removed a lot of unnecessary includesMartijn Otto7-18/+0
2018-11-15various: do not propagate exception through dtormoneromooo-monero1-1/+2
Coverity 189689, 189690, 189692, 189695
2018-11-13common: fix base58 gcc -Werror=implicit-fallthroughxiphon1-14/+2
2018-11-05perf_timer: remove stray debug additionmoneromooo-monero1-1/+0
2018-11-03wallet: warn if lockable memory limit is too lowmoneromooo-monero2-0/+17
2018-11-01dns_utils: do not exit if DNS records are corruptmoneromooo-monero2-8/+36
2018-11-01perf_timer: call reserve on new timer arraymoneromooo-monero1-0/+1
to avoid reallocations in the vast majority of the time
2018-10-19perf_timer: separate log categories based on caller categoriesmoneromooo-monero2-14/+12
Also default to microseconds, for homogeneity Makes it easier to enable what we need
2018-10-17spawn: close all file descriptors before execvemoneromooo-monero3-0/+25
No need to give whatever we're calling access to what we use
2018-10-16util: close keys file lock on execmoneromooo-monero1-1/+1
2018-10-15Providing user supplied default constructor for expect<void>Lee Clagett1-1/+3
2018-10-10password: fix secure input with echo on windowsmoneromooo-monero1-2/+6
Thanks to iDunk for the testing back and forth
2018-10-10password: fix backspace outputting ^? on linux on echoing secure inputmoneromooo-monero1-0/+7
2018-10-09Utils: add support for newer Windows versions detectionGregory Lemercier1-1/+24
2018-10-04secure_pwd_reader: Add proper Unicode handling [Ryo contribution]fireice-uk1-11/+23
2018-10-02Catch more exceptions in dtorsmoneromooo-monero1-0/+10
Misc coverity reports
2018-10-02common: Windows 'spawn' support for tx and block notificationsxiphon4-11/+65
2018-10-01wallet: fix --generate-from-json using wrong passwordmoneromooo-monero2-0/+5
2018-09-29Merge pull request #4333Riccardo Spagni5-0/+238
73403004 add --block-notify to monerod and --tx-notify to monero-wallet-{cli,rpc} (moneromooo-monero)
2018-09-29Merge pull request #4459Riccardo Spagni1-1/+2
bcf3f6af fuzz_tests: catch unhandled exceptions (moneromooo-monero) 3ebd05d4 miner: restore stream flags after changing them (moneromooo-monero) a093092e levin_protocol_handler_async: do not propagate exception through dtor (moneromooo-monero) 1eebb82b net_helper: do not propagate exceptions through dtor (moneromooo-monero) fb6a3630 miner: do not propagate exceptions through dtor (moneromooo-monero) 2e2139ff epee: do not propagate exception through dtor (moneromooo-monero) 0749a8bd db_lmdb: do not propagate exceptions in dtor (moneromooo-monero) 1b0afeeb wallet_rpc_server: exit cleanly on unhandled exceptions (moneromooo-monero) 418a9936 unit_tests: catch unhandled exceptions (moneromooo-monero) ea7f9543 threadpool: do not propagate exceptions through the dtor (moneromooo-monero) 6e855422 gen_multisig: nice exit on unhandled exception (moneromooo-monero) 53df2deb db_lmdb: catch error in mdb_stat calls during migration (moneromooo-monero) e67016dd blockchain_blackball: catch failure to commit db transaction (moneromooo-monero) 661439f4 mlog: don't remove old logs if we failed to rename the current file (moneromooo-monero) 5fdcda50 easylogging++: test for NULL before dereference (moneromooo-monero) 7ece1550 performance_test: fix bad last argument calling add_arg (moneromooo-monero) a085da32 unit_tests: add check for page size > 0 before dividing (moneromooo-monero) d8b1ec8b unit_tests: use std::shared_ptr to shut coverity up about leaks (moneromooo-monero) 02563bf4 simplewallet: top level exception catcher to print nicer messages (moneromooo-monero) c57a65b2 blockchain_blackball: fix shift range for 32 bit archs (moneromooo-monero)
2018-09-28dns_utils: refresh list of usable DNSSEC serversmoneromooo-monero1-3/+4
A few of them are now returning invalid replies.
2018-09-19simplewallet: Add Unicode input_line [Ryo backport]fireice-uk2-0/+31
2018-09-14wallet: ask-password can now ask without encrypting the secret spend keymoneromooo-monero1-2/+2
2018-09-12Adding expect<T> - a value-or-error implementationLee Clagett5-0/+648
2018-09-11perf_timer: split timer class into a base one and a logging onemoneromooo-monero2-14/+42
2018-09-11aligned: aligned memory alloc/realloc/freemoneromooo-monero3-2/+184
2018-08-28dns_util: add new DNSSEC trust anchor for rollovermoneromooo-monero1-4/+14
It should be useful from the 11th of october 2018. The old key is still trusted for now. https://www.icann.org/resources/pages/ksk-rollover
2018-08-25is_hdd updatep8p2-51/+37
2018-08-17util: remove unused <ustat.h>moneromooo-monero1-1/+0
It's obsolete and removed from at least Arch Linux 8.2 Reported by moneroexamples
2018-08-16wallet: wipe seed from memory where appropriatemoneromooo-monero2-12/+12
2018-08-12wallet: disable core dumps on startup in release modemoneromooo-monero2-0/+18
2018-08-12stack_trace: print stack traces on stdout if the logger isn't livemoneromooo-monero1-1/+10
2018-08-05updates: fix hash sanity checkingmoneromooo-monero1-3/+3
2018-07-07core_tests: add --filter to select which tests to runmoneromooo-monero2-0/+21
2018-06-28remove epee from link lines where it's redundantmoneromooo-monero1-1/+0
For some reason, this confuses and kills ASAN on startup as it thinks const uint8_t ipv4_network_address::ID is defined multiple times.
2018-06-28util: fix mistakes made in #3994stoffu1-3/+3
2018-06-28util: add file_locker classstoffu2-0/+81
2018-06-28epee.string_tools: add conversion between UTF-8 and UTF-16stoffu1-12/+19
2018-06-26threadpool: allow leaf functions to run concurrentlymoneromooo-monero2-14/+30
Decrease the number of worker threads by one to account for the fact the calling thread acts as a worker thread now
2018-06-23Changed URLs to HTTPSeinsteinsfool2-2/+2
2018-06-21Move parse_subaddress_lookahead() from simplewallet.cpp to util.cppstoffu2-0/+21
2018-06-08db_lmdb: warn about slowness when running off a spinning diskmoneromooo-monero2-0/+72
2018-06-07password: flush cout when prompting for password without newlinemoneromooo-monero1-1/+1
2018-06-05util: consider Tor/I2P addresses to be non localmoneromooo-monero1-0/+7
2018-05-20threadpool: allow constructing an object, and misc tweaksmoneromooo-monero2-9/+13
use unsigned int to avoid having to range check negative numbers, use const where possible, don't needlessly create empty objects, use std::move where possible
2018-04-25Adding required library (dependency of boost::this_thread::sleep_for)Gene Peters1-0/+1
2018-04-12util: log stack trace on crashmoneromooo-monero1-0/+39
2018-04-10common: make this build with unbound 1.4.20moneromooo-monero2-2/+5
Common on currently used distros
2018-03-05Correct spelling mistakes.Edward Betts1-2/+2
2018-03-05command_line: allow args to depend on more than one argsstoffu1-9/+57
2018-03-05command_line::get_arg: remove 'required' for dependent args as they're ↵stoffu1-3/+3
always optional
2018-03-05command line: allow has_arg to handle arg_descriptor<bool,false,true> #3318stoffu1-4/+4
2018-02-25Wallet2 + CLI wallet: UTF-8 support for filenames and paths under Windowsrbrunner71-8/+15
2018-02-16common: implement dynamic option dependencies mechanismwhythat1-14/+11
2018-02-16common: implement dependent option descriptorwhythat1-5/+45
2018-02-10handle ^D and ^C while password promptingJethro Grassie3-6/+17
2018-02-08dns: change default DNS to a worldwide selectionmoneromooo-monero2-10/+20
DNSSEC aware servers picked from https://wiki.ipfire.org/dns/public-servers
2018-02-02threadpool: catch exceptions in dtor, to avoid terminatemoneromooo-monero2-1/+20
If an exception is thrown, it is ignored. While this may hide a bug, this should only be system exceptions in boost, which is pretty unlikely. Morever, wait should be called manually before the dtor anyway. Add an error message if the dtor has to wait in case some such cases creep in so they get fixed. Coverity 182538
2018-02-02perf_timer: rewrite to make it clear there is no division by zeromoneromooo-monero1-4/+3
It could have happened if epee::misc_utils::get_ns_count is buggy, at a push Coverity 182561
2018-01-31wipeable_string: call memwipe directlymoneromooo-monero1-2/+0
since the original reason for the indirect call (that memwipe was not in contrib) is now gone
2018-01-29rpc_client: Fix error handlingErik de Castro Lopo1-8/+8
Previous code was unable to distingush between a connection error and a communication error.
2018-01-27Fixed #if instead of #ifdefMatt Little1-3/+3
2018-01-26Readd copyright starting datexmr-eric12-12/+12
2018-01-26Update 2018 copyrightxmr-eric35-35/+35
2018-01-25Support building cncrypto lib with msvcMatt Little1-0/+9
2018-01-15perf_timer: add faster x86_64 timers, and pause/resumemoneromooo-monero2-7/+77
2018-01-15perf_timer: use std::unique_ptr instead of new/deletemoneromooo-monero1-2/+3
2018-01-10move memwipe to epee to avoid common<->crypto circular dependenciesmoneromooo-monero4-197/+1
2018-01-10epee: remove dependency on commonmoneromooo-monero1-0/+1
2018-01-08util: warn if unbound was not built with threadsmoneromooo-monero1-0/+17
This can causes crashes in libunbound
2018-01-04Removed unused mac-specific output folder pathMaxithi1-9/+1
2018-01-04common cmake: make sure translation_files.h is generated for i18n.cppstoffu1-1/+2
2017-12-27apply_permutation.h: add #pragma oncemoneromooo-monero1-0/+2
2017-12-26only include the easylogging++ stack trace code when neededmoneromooo-monero1-0/+3
2017-12-23threadpool: fix deadlock in recursive waiter usagemoneromooo-monero1-1/+7
If a queued job uses a waiter, then we want to run that waiter's jobs in the current thread if all threads are busy, even if the queue is empty, since there is no guarantee that any thread will free up to take care of that new job, since all the threads might be running a job which spawns such a recursive job and will block till that recursive job is done, which it will never be since it relies on the queue being polled by one of those blocked threads.
2017-12-16move includes around to lessen overall loadmoneromooo-monero7-35/+46
2017-12-16Scrub keys from memory just before scope end.moneromooo-monero1-0/+43
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-15Embed the translation files in the binaryGuillaume LE VAILLANT1-13/+30
If a translation file exists in a "translations" directory located in the same directory as the binary, it is used in priority (this can be useful when working on translations as you don't have to recompile the whole program all the time), and if no such file is found the embedded translation file is used (if it exists).
2017-12-15resumption support for updates using range requestsmoneromooo-monero1-7/+49
2017-12-14updates: use https for updatesmoneromooo-monero1-1/+1
2017-12-14download: SSL suportmoneromooo-monero1-2/+3
2017-12-07perf_timer: add non scoped start/stop timer definesmoneromooo-monero1-0/+3
2017-12-07util: allow non numeric version partsmoneromooo-monero1-7/+7
2017-11-28Fix password capitalization mismatchxmr-eric1-1/+1
2017-11-27new wipeable_string class to replace std::string passphrasesmoneromooo-monero3-26/+20
2017-11-27utils: initialize easylogging++ in on_startupmoneromooo-monero1-0/+2
It will be reinitialized later once we know about log file and other command line configuration
2017-11-27use memwipe in a few relevant placesmoneromooo-monero1-2/+5
2017-11-27add a memwipe functionmoneromooo-monero3-0/+153
It's meant to avoid being optimized out memory_cleanse lifted from bitcoin
2017-11-18fixed common/util.cpp to link against libresslston1th1-1/+1
2017-11-15Tools, daemonizer: fix building on WindowsiDunk54001-0/+5
2017-11-14wallet: rejig to avoid prompting in wallet2moneromooo-monero2-6/+3
wallet2 is a library, and should not prompt for stdin. Instead, pass a function so simplewallet can prompt on stdin, and a GUI might display a window, etc.
2017-11-14move input_line from command_line to simplewalletmoneromooo-monero2-20/+0
It was only used there, and this removes one part of the common dependency on libreadline
2017-11-14move cryptonote command line options to cryptonote_coremoneromooo-monero2-58/+0
Those have no reason to be in a generic module
2017-11-14make this build on SunOS/SolarisPavel Maryanov2-1/+5
2017-11-14simplewallet: reject invalid argument for boolean parameterstoffu2-0/+16
2017-11-03updates: add a special case for "install-" build tags on windowsmoneromooo-monero1-1/+1
Those will have a ".exe" file extension, not .zip.
2017-11-03Disguise password length in promptLeon Klingele1-4/+0
2017-11-02Use max_concurrency as-isHoward Chu1-2/+2
Don't try to 2nd guess user
2017-10-21Initialize openssl on startupmoneromooo-monero1-0/+7
2017-10-14Add tools::on_startup, and warn about glibc 2.25 bug if foundmoneromooo-monero2-0/+17
https://sourceware.org/bugzilla/show_bug.cgi?id=21778
2017-10-10dns_utils: allow an optional DNS server IP in DNS_PUBLICmoneromooo-monero2-6/+41
tcp://a.b.c.d
2017-10-09util: ignore SIGPIPEmoneromooo-monero1-1/+2
In practice, this seems to cause monero-wallet-rpc to exit when ^C quits whatever its output is piped into (such as tee), but it saves, while it did not before.
2017-10-06add a command_line function to check for defaulted optionsmoneromooo-monero1-0/+6
2017-09-21dns_utils: query DNS records in parallelmoneromooo-monero1-6/+15
2017-09-18blockchain: reject unsorted ins and outs from v7moneromooo-monero1-1/+8
This ensures no information is leaked by the ordering
2017-09-15Tweak concurrency limitsHoward Chu2-2/+6
Create capacity for 2x max, but lie about it