aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include (follow)
AgeCommit message (Collapse)AuthorFilesLines
2017-11-14remove "using namespace std" from headersmoneromooo-monero1-2/+0
It's nasty, and actually breaks on Solaris, where if.h fails to build due to: struct map *if_memmap;
2017-11-14Merge pull request #2617Riccardo Spagni4-5/+26
7dbf76d0 Fix an object lifetime bug in net load tests (moneromooo-monero)
2017-11-01Merge pull request #2663Riccardo Spagni1-1/+9
4b228dd3 cmake: epee: use var from FindOpenSSL.cmake (redfish) 29497f79 epee: use boost type for SSL error code (redfish)
2017-10-31Merge pull request #2723Riccardo Spagni6-17/+60
69c37200 RPC Add cross origin resource sharing support (Tim L)
2017-10-30RPC Add cross origin resource sharing supportTim L6-17/+60
2017-10-20net_helper: fix massive slowdown after SSL supportmoneromooo-monero1-5/+5
2017-10-17epee: use boost type for SSL error coderedfish1-1/+9
Fixes compile error when building with OpenSSL v1.1: contrib/epee/include/net/net_helper.h: In member function ‘void epee::net_utils::blocked_mode_client::shutdown_ssl()’: contrib/epee/include/net/net_helper.h:579:106: error: ‘SSL_R_SHORT_READ’ was not declared in this scope if (ec.category() == boost::asio::error::get_ssl_category() && ec.value() != ERR_PACK(ERR_LIB_SSL, 0, SSL_R_SHORT_READ)) ^ contrib/epee/include/net/net_helper.h:579:106: note: suggested alternative: ‘SSL_F_SSL_READ’ See boost/asio/ssl/error.hpp. Boost handles differences between OpenSSL versions. cmake: fail if Boost is too old for OpenSSL v1.1
2017-10-15Merge pull request #2602Riccardo Spagni2-5/+5
bc1b9333 frob level 1 logs a bit for consistency (moneromooo-monero)
2017-10-15add string_tools::validate_hex()Jaquee1-0/+6
2017-10-15Serializer: string to integer conversion for MyMonero compatibilityJaquee1-0/+27
mymonero timestamp conversion
2017-10-15epee http_client SSL supportJaquee3-46/+111
2017-10-09Fix an object lifetime bug in net load testsmoneromooo-monero4-5/+26
The commands handler must not be destroyed before the config object, or we'll be accessing freed memory. An earlier attempt at using boost::shared_ptr to control object lifetime turned out to be very invasive, though would be a better solution in theory.
2017-10-07frob level 1 logs a bit for consistencymoneromooo-monero2-5/+5
Level 1 logs map to INFO, so setting log level to 1 should show these. Demote some stuff to DEBUG to avoid spam, though.
2017-10-07Subaddresseskenshi841-5/+41
2017-10-06Merge pull request #2541Riccardo Spagni1-0/+2
15e62581 connection_context: initialize m_callback_request_count to 0 (moneromooo-monero) 5fa199c6 copyable_atomic: add a ctor with initial value (moneromooo-monero)
2017-10-05Upgrades to epee::net_utils::network_addressLee Clagett2-71/+127
- internal nullptr checks - prevent modifications to network_address (shallow copy issues) - automagically works with any type containing interface functions - removed fnv1a hashing - ipv4_network_address now flattened with no base class
2017-10-02Merge pull request #2512Riccardo Spagni1-0/+1
792ba4f0 Log categories can now be added to and removed from (moneromooo-monero) 48f92eb6 easylogging++: add categories getter (moneromooo-monero) f35afe62 epee: factor log level/categories setting (moneromooo-monero)
2017-10-02Merge pull request #2475Riccardo Spagni1-2/+8
f2939bdc epee: keep a ref to a connection we're deleting (moneromooo-monero)
2017-10-02Merge pull request #2467Riccardo Spagni1-0/+3
2e82b232 epee: give virtual dtor to network_address_base (moneromooo-monero)
2017-09-27copyable_atomic: add a ctor with initial valuemoneromooo-monero1-0/+2
2017-09-25serialization: add deque serializationmoneromooo-monero1-0/+36
2017-09-25Merge pull request #2456Riccardo Spagni1-1/+2
91def9a5 daemon, wallet: add --max-log-file-size option (selsta)
2017-09-25http_base: init size_t in http_request_info ctormoneromooo-monero1-1/+2
CID 161879
2017-09-22Log categories can now be added to and removed frommoneromooo-monero1-0/+1
Also, set_log without parameters now prints the log categories
2017-09-21Merge pull request #2302Riccardo Spagni2-22/+15
ef005f5e p2p: add a couple early outs when the stop signal is received (moneromooo-monero) 80d361c7 abstract_tcp_server2: improve tracking/cancelling of early connections (moneromooo-monero)
2017-09-19epee: keep a ref to a connection we're deletingmoneromooo-monero1-2/+8
close might end up dropping a ref, ending up removing the connection from m_connects, as the lock is recursive. This'd cause an out of bounds exception and kill the idle connection maker thread
2017-09-18epee: give virtual dtor to network_address_basemoneromooo-monero1-0/+3
It has virtual functions and is used as a base class
2017-09-17daemon, wallet: add --max-log-file-size optionselsta1-1/+2
2017-08-26Merge pull request #2320Riccardo Spagni2-18/+16
c656dd0e Fix refresh counter display (Howard Chu) c088d38a Simplify readline support (Howard Chu)
2017-08-25Merge pull request #2311Riccardo Spagni1-0/+12
df0cffed cryptonote_protocol: warn if we see a higher top version we expect (moneromooo-monero) 317ab21a cryptonote_protocol: less strict check on top version on connect (moneromooo-monero) cc81a371 cryptonote_protocol: update target height when syncing too (moneromooo-monero) e2ad372b cryptonote_protocol: simplify and remove unnecessary casts (moneromooo-monero) 727e67ca cryptonote_protocol: print peer top height along with its version (moneromooo-monero) b5345ef4 crypto: use malloc instead of alloca (moneromooo-monero) 80794b31 thread_group: set thread size to THREAD_STACK_SIZE (moneromooo-monero) 5524bc31 print peer id in 0 padded hex for consistency (moneromooo-monero) 8f8cc09b contrib: add sync_info to rlwrap command set (moneromooo-monero) 70b8c6d7 cryptonote_protocol: misc fixes to the new sync algorithm (moneromooo-monero)
2017-08-23print peer id in 0 padded hex for consistencymoneromooo-monero1-0/+12
2017-08-22http_client: add getters for host and portmoneromooo-monero1-0/+3
2017-08-22Simplify readline supportHoward Chu2-18/+16
And don't use std::mutex
2017-08-16abstract_tcp_server2: improve tracking/cancelling of early connectionsmoneromooo-monero2-22/+15
We don't actually need to keep them past the call to start, as this adds them to the config object list, and so they'll then be cancelled already when the stop signal arrives. This allows removing the periodic call to cleanup connections.
2017-08-16Construct on first use for completion_commandsJethro Grassie1-11/+3
2017-08-15Merge pull request #2253Riccardo Spagni1-2/+2
51ebedb8 epee: remove a couple unused locals (moneromooo-monero)
2017-08-15Merge pull request #2240Riccardo Spagni1-11/+16
b7d6ec83 simplewallet: add (out of sync) or (no daemon) markers in the prompt (moneromooo-monero) fa23a500 wallet2: add a is_synced function (moneromooo-monero) f1307bbd node_rpc_proxy: add a proxy for target height (moneromooo-monero)
2017-08-15Merge pull request #2237Riccardo Spagni2-5/+17
5d4ef719 core: speed up output index unique set calculation (moneromooo-monero) 19d7f568 perf_timer: allow profiling more granular than millisecond (moneromooo-monero) bda8c598 epee: add nanosecond timer and pause/restart profiling macros (moneromooo-monero)
2017-08-09epee: fixup KV_SERIALIZE_OPT to work in more casesmoneromooo-monero1-1/+4
2017-08-07Merge pull request #2149Riccardo Spagni1-0/+14
158c3ecf core: thread most of handle_incoming_tx (moneromooo-monero) f57ee382 cryptonote_protocol: retry stale spans early (moneromooo-monero) 90df52e1 cryptonote_protocol: light cleanup (moneromooo-monero) 84e23156 cryptonote_protocol: avoid spurious SYNCHRONIZED OK messages (moneromooo-monero) 5be43fcd cryptonote_protocol_handler: sync speedup (moneromooo-monero)
2017-08-07Merge pull request #2220Riccardo Spagni1-3/+0
c6ba7d11 p2p: move m_in_timedsync from connection_context to p2p_connection_context (moneromooo-monero)
2017-08-07Merge pull request #2201Riccardo Spagni1-0/+7
dc0b312f wallet_rpc_server: optionally return tx blobs on transfer calls (moneromooo-monero) 5eb79983 epee: add a KV_SERIALIZE variant for optional parameters (moneromooo-monero)
2017-08-07Merge pull request #2195Riccardo Spagni1-0/+1
599436a4 mlog: default to msgwriter logs only for log level 1 (moneromooo-monero) 58f3fc68 Make msgwriter logs go to file only (moneromooo-monero)
2017-08-07Merge pull request #2151Riccardo Spagni1-1/+1
13a8d64f epee: don't send the body of the response to a HEAD HTTP request (Guillaume LE VAILLANT)
2017-08-07Merge pull request #2153Riccardo Spagni6-9/+9
35d68b2c Fix spelling errors (Erik de Castro Lopo)
2017-08-07cryptonote_protocol_handler: sync speedupmoneromooo-monero1-0/+14
A block queue is now placed between block download and block processing. Blocks are now requested only from one peer (unless starved). Includes a new sync_info coommand.
2017-08-05epee: remove a couple unused localsmoneromooo-monero1-2/+2
2017-08-02simplewallet: add (out of sync) or (no daemon) markers in the promptmoneromooo-monero1-11/+16
Should help people who don't realize why they haven't seen their monero yet.
2017-08-01p2p: move m_in_timedsync from connection_context to p2p_connection_contextmoneromooo-monero1-3/+0
It's got no place in the base class as it's P2P specific field
2017-08-01epee: add nanosecond timer and pause/restart profiling macrosmoneromooo-monero2-5/+17
Nanosecond timer precision won't work on Windows, but we don't care since I'm using that just for profiling incremental code paths, but a Windows coder is welcome to add it if there's a way.
2017-07-24epee: add a KV_SERIALIZE variant for optional parametersmoneromooo-monero1-0/+7
2017-07-24Make msgwriter logs go to file onlymoneromooo-monero1-0/+1
This was the case for monero-wallet-cli already, but not for monerod, which was making it pretty spammy as it was duplicating intended output. Since my original intent was to ensure logs included command output for debugging, this achieves both.
2017-07-19Merge pull request #2159Riccardo Spagni2-0/+19
6955976b Add various readline related fixes (Jethro Grassie)
2017-07-19Merge pull request #2131Riccardo Spagni1-3/+3
a04faf56 abstract_tcp_server2: guard against accessing lock on a destroyed object (moneromooo-monero)
2017-07-09Add various readline related fixesJethro Grassie2-0/+19
- Add missing unbind key - Fix colored messages - Add command completion - Preserve last command input - Fix cursor position issues - Fix trailing whitespace in commands - Synchronize set_prompt
2017-07-05epee: don't send the body of the response to a HEAD HTTP requestGuillaume LE VAILLANT1-1/+1
According to the HTTP spec: "The HEAD method is identical to GET except that the server MUST NOT return a message-body in the response".
2017-07-05Fix spelling errorsErik de Castro Lopo6-9/+9
2017-07-03Merge pull request #2130Riccardo Spagni1-15/+20
a0d2c745 Fix issue #2119 SEGV (Howard Chu)
2017-07-03Merge pull request #2122Riccardo Spagni1-1/+0
a282c575 Fix #2071: remove declaration of unused variable "it" in epee (binaryFate)
2017-07-03Merge pull request #2098Riccardo Spagni1-1/+5
fdccf7e6 Add readline improvements (Jethro Grassie)
2017-07-01Fix issue #2119 SEGVHoward Chu1-15/+20
Due to bad refactoring in PR #2073. timeout_handler() doesn't work as a virtual function.
2017-06-28abstract_tcp_server2: guard against accessing lock on a destroyed objectmoneromooo-monero1-3/+3
2017-06-28Remove typeid use in network_addressmoneromooo-monero1-3/+2
Since I had to add an ID to the derived classes anyway, this can be used instead. This removes an apparently pointless warning from CLANG too.
2017-06-26Fix #2071: remove declaration of unused variable "it" in epeebinaryFate1-1/+0
2017-06-24Add readline improvementsJethro Grassie1-1/+5
Color prompt now working and no reprompting on exit command.
2017-06-24Merge pull request #2103Riccardo Spagni1-2/+2
21b939e1 readline: fix invalid memory access (moneromooo-monero) 5f8f2905 readline_buffer: add a couple const (moneromooo-monero)
2017-06-24Merge pull request #2073Riccardo Spagni2-9/+49
07c4276c Don't issue a new timedsync while one is already in progress (Howard Chu) cf3a376c Don't timeout a slow operation that's making progress (Howard Chu) 340830de Fix PR#2039 (Howard Chu)
2017-06-21readline_buffer: add a couple constmoneromooo-monero1-2/+2
2017-06-19net_utils_base: added missing template keywordkenshi841-1/+1
2017-06-18Add readline support to clijethro2-0/+81
This PR adds readline support to the daemon and monero-wallet-cli. Only GNU readline is supported (e.g. not libedit) and there are cmake checks to ensure this. There is a cmake variable, Readline_ROOT_DIR that can specify a directory to find readline, otherwise some default paths are searched. There is also a cmake option, USE_READLINE, that defaults to ON. If set to ON, if readline is not found, the build continues but without readline support. One negative side effect of using readline is that the color prompt in the wallet-cli now has no color and just uses terminal default. I know how to fix this but it's quite a big change so will tackle another time.
2017-06-15Don't issue a new timedsync while one is already in progressHoward Chu1-0/+3
A timedsync is issued every minute on a connection, but the input tineout is 2 minutes. This means a new sync request could be issued while a slow sync request was already in progress. The additional request will further clog the network on a slow connection, and cause a premature timeout.
2017-06-15Don't timeout a slow operation that's making progressHoward Chu1-9/+46
If we got at least MIN_BYTES_WANTED (default 512) during any network poll, reset the timeout to allow more time for data to arrive.
2017-05-27abstracted nework addressesmoneromooo-monero8-26/+122
All code which was using ip and port now uses a new IPv4 object, subclass of a new network_address class. This will allow easy addition of I2P addresses later (and also IPv6, etc). Both old style and new style peer lists are now sent in the P2P protocol, which is inefficient but allows peers using both codebases to talk to each other. This will be removed in the future. No other subclasses than IPv4 exist yet.
2017-04-25Removed some unused epee functionsLee Clagett3-726/+2
2017-04-11Simplified the implementation and features of spanLee Clagett3-194/+137
2017-04-11Improvements for epee binary to hex functions:Lee Clagett3-28/+257
- Performance improvements - Added `span` for zero-copy pointer+length arguments - Added `std::ostream` overload for direct writing to output buffers - Removal of unused `string_tools::buff_to_hex`
2017-04-10setThreadName moved in new version of easylogging++moneromooo-monero1-1/+1
2017-04-10update easylogging++ to latest upstreammoneromooo-monero1-9/+0
2017-03-18Removed boost/asio.hpp include from epee/string_tools.hLee Clagett4-31/+16
2017-03-05http_client: allow cancelling a downloadmoneromooo-monero1-2/+10
2017-03-05http_client: allow derived class to get headers at startmoneromooo-monero1-0/+11
2017-02-24Updated default RPC timeout from 5 seconds to 15 secondsLee Clagett1-4/+4
2017-02-22Merge pull request #1762Riccardo Spagni1-1/+1
dcf684c7 http_server_impl_base: set bind message to MGINFO (anonimal)
2017-02-21http_server_impl_base: set bind message to MGINFOanonimal1-1/+1
2017-02-21update copyright year, fix occasional lack of newline at line endRiccardo Spagni1-1/+1
2017-02-20http_client: add a couple constsmoneromooo-monero1-2/+2
2017-02-12Merge pull request #1717Riccardo Spagni1-5/+5
8bdc86be protocol: speed up sync by minimizing duplicate work (moneromooo-monero) 61dfa310 epee: fix some log macros not printing context nicely (moneromooo-monero)
2017-02-12epee: fix some log macros not printing context nicelymoneromooo-monero1-5/+5
2017-02-12Fixup choice of easylogging++ vs libunwind stack trace codemoneromooo-monero1-2/+3
2017-02-11Merge pull request #1693Riccardo Spagni1-0/+2
5d00659e disable ELPP_STACKTRACE_ON_CRASH for android (MoroccanMalinois)
2017-02-06Add server auth to monerod, and client auth to wallet-cli and wallet-rpcLee Clagett6-45/+85
2017-02-06disable ELPP_STACKTRACE_ON_CRASH for androidMoroccanMalinois1-0/+2
2017-02-04Use easylogging++'s stack trace facility where possiblemoneromooo-monero1-1/+2
This avoids using libunwind, which often causes trouble.
2017-01-25Updates to epee HTTP client codeLee Clagett4-200/+80
- http_simple_client now uses std::chrono for timeouts - http_simple_client accepts timeouts per connect / invoke call - shortened names of epee http invoke functions - invoke command functions only take relative path, connection is not automatically performed
2017-01-20removing some unsed epee filesmoneroexamples1-132/+0
2017-01-16Change logging to easylogging++moneromooo-monero30-1466/+283
This replaces the epee and data_loggers logging systems with a single one, and also adds filename:line and explicit severity levels. Categories may be defined, and logging severity set by category (or set of categories). epee style 0-4 log level maps to a sensible severity configuration. Log files now also rotate when reaching 100 MB. To select which logs to output, use the MONERO_LOGS environment variable, with a comma separated list of categories (globs are supported), with their requested severity level after a colon. If a log matches more than one such setting, the last one in the configuration string applies. A few examples: This one is (mostly) silent, only outputting fatal errors: MONERO_LOGS=*:FATAL This one is very verbose: MONERO_LOGS=*:TRACE This one is totally silent (logwise): MONERO_LOGS="" This one outputs all errors and warnings, except for the "verify" category, which prints just fatal errors (the verify category is used for logs about incoming transactions and blocks, and it is expected that some/many will fail to verify, hence we don't want the spam): MONERO_LOGS=*:WARNING,verify:FATAL Log levels are, in decreasing order of priority: FATAL, ERROR, WARNING, INFO, DEBUG, TRACE Subcategories may be added using prefixes and globs. This example will output net.p2p logs at the TRACE level, but all other net* logs only at INFO: MONERO_LOGS=*:ERROR,net*:INFO,net.p2p:TRACE Logs which are intended for the user (which Monero was using a lot through epee, but really isn't a nice way to go things) should use the "global" category. There are a few helper macros for using this category, eg: MGINFO("this shows up by default") or MGINFO_RED("this is red"), to try to keep a similar look and feel for now. Existing epee log macros still exist, and map to the new log levels, but since they're used as a "user facing" UI element as much as a logging system, they often don't map well to log severities (ie, a log level 0 log may be an error, or may be something we want the user to see, such as an important info). In those cases, I tried to use the new macros. In other cases, I left the existing macros in. When modifying logs, it is probably best to switch to the new macros with explicit levels. The --log-level options and set_log commands now also accept category settings, in addition to the epee style log levels.
2017-01-15Merge pull request #1561Riccardo Spagni1-1/+1
d561f4ad enable clang checks that were disabled (Chris Vickio) 0aefb2f6 remove std::move from return statements (pessimizing-move warning) (Chris Vickio) 629d5b76 change counter from bool to int (deprecated-increment-bool warning) (Chris Vickio) fb76d439 add extra braces around subobjects (missing-braces warning) (Chris Vickio) 3b6d5f25 make struct/class declarations consistent (mismatched-tags warning) (Chris Vickio) fcf66925 remove unused fields from network_throttle (unused-private-field warning) (Chris Vickio) 296f8c16 inline unused function (for unused-function warning) (Chris Vickio)
2017-01-14inline unused function (for unused-function warning)Chris Vickio1-1/+1
2017-01-11Added (not yet enabled) HTTP client authenticationLee Clagett3-22/+101
2017-01-08Merge pull request #1514Riccardo Spagni1-3/+10
fa0ee42c Workarounds for gcc 4.8 (Lee Clagett)
2017-01-05Build wallet with Android NDKMoroccanMalinois1-1/+1
2016-12-30Workarounds for gcc 4.8Lee Clagett1-3/+10
2016-12-13Adding HTTP Digest Auth (but not yet enabled)Lee Clagett4-6/+103
2016-12-04Merge pull request #1403Riccardo Spagni1-1/+1
60633cf6 Spelling in errors (taushet)
2016-12-04Merge pull request #1385Riccardo Spagni1-0/+30
5783dd8c tests: add unit tests for uri parsing (moneromooo-monero) 82ba2108 wallet: add API and RPC to create/parse monero: URIs (moneromooo-monero) d9001b43 epee: add functions to convert from URL format (ie, %XX values) (moneromooo-monero)
2016-12-04Spelling in errorstaushet1-1/+1
2016-11-28epee: add functions to convert from URL format (ie, %XX values)moneromooo-monero1-0/+30
2016-11-28epee: signal cond var before unlockingmoneromooo-monero1-1/+1
This is more canonical, and avoids some helgrind spam
2016-11-24Merge pull request #1372Riccardo Spagni1-3/+3
17b6bd6 Fix DNS failures in offline mode preventing daemon startup (moneromooo-monero)
2016-11-23Fix DNS failures in offline mode preventing daemon startupmoneromooo-monero1-3/+3
2016-11-17epee: blind attempt to fix exit hang on windowsmoneromooo-monero1-0/+14
Thanks to duckduckgo and the internet. This might even compile.
2016-11-12levin: fix wrong value passed as return code to remote callmoneromooo-monero1-1/+1
When receiving an answer packet, the command code was passed to the callback instead of the error code. This was hiding the "command not found" failure from the peer, and in turn causing the code to attempt to deserialize a non existent reply string.
2016-10-31adding static_assert to pod functions in string toolsLee Clagett1-0/+4
2016-10-27Unkonown -> unknownNanoAkron1-1/+1
2016-10-03Removed all code related to fast_exitNanoAkron2-14/+1
2016-09-18epee: optionally restrict HTTP service to a configurable user agentmoneromooo-monero5-12/+31
This is intended to catch traffic coming from a web browser, so we avoid issues with a web page sending a transfer RPC to the wallet. Requiring a particular user agent can act as a simple password scheme, while we wait for 0MQ and proper authentication to be merged.
2016-09-01epee: do not try network resolution if loopback workedmoneromooo-monero1-1/+1
Fixes the wallet being unable to connect to the daemon when there is no NIC.
2016-07-06Merge pull request #884Riccardo Spagni1-4/+9
c2ad9ca allow peers without port (moneromooo-monero)
2016-07-03allow peers without portmoneromooo-monero1-4/+9
The default port is then used
2016-06-22contrib: epee: add missing noexcept spec to class declredfish1-1/+1
The noexcept specs were added to make GCC 6.1.1 happy (#846), but this one was missing (because GCC did not complain about it on Linux, but does complain on OSX).
2016-06-19Merge pull request #862Riccardo Spagni1-1/+3
5dc09f2 wallet_rpc_server: fix some string values being returned between <> (moneromooo-monero) f8213c0 Require 64/16 characters for payment ids (moneromooo-monero)
2016-06-19Require 64/16 characters for payment idsmoneromooo-monero1-1/+3
The default behavior for hex string parsing would allow the last digit to be made from a single hexadecimal character, which is correct, but we typically do not want that as it gets confusing and easy to not spot wrong input size.
2016-05-18contrib: epee: add exception spec to throwing destructorsredfish3-3/+3
The destructors get a noexcept(true) spec by default, but these destructors in fact throw exceptions. An alternative fix might be to not throw (most if not all of these throws are non-essential error-reporting/logging).
2016-05-17Merge pull request #840Riccardo Spagni1-2/+4
1c0bffb Restrict also 'get_connections' and 'getbans' APIs. (osensei) 9f8bc49 Don't allow 'flush_txpool' and 'setbans' JSON_RPC methods when running in restricted mode. (osensei)
2016-05-14Don't allow 'flush_txpool' and 'setbans' JSON_RPC methods when running in ↵osensei1-2/+4
restricted mode.
2016-05-01core: move tx_extra parsing errors to log level 1moneromooo-monero1-1/+9
They're not fatal, though indicate something wrong
2016-04-17abstract_tcp_server2: fix send queue limit warning spammoneromooo-monero1-1/+1
When the send queue limit is reached, it is likely to not drain any time soon. If we call close on the connection, it will stay alive, waiting for the queue to drain before actually closing, and will hit that check again and again. Since the queue size limit is the reason we're closing in the first place, we call shutdown directly.
2016-04-17abstract_tcp_server2: avoid deadlock waiting for send queue to drainmoneromooo-monero1-2/+5
If we reach the send queue size limit, we need to release the lock, or we will deadlock and it will never drain. If we reach that limit, it's likely there's another problem in the first place though, so it will probably not drain in practice either, unless some kind of transient network timeout.
2016-04-06Merge pull request #799Riccardo Spagni1-5/+7
aaaf9e2 Fix get_tick_count() on Windows (Howard Chu)
2016-04-06Fix get_tick_count() on WindowsHoward Chu1-5/+7
GetTickCount used in 52056dcfc480a126e06afaf209b1772b6aa77fb3 only has ~10-16ms resolution. Use higher rez timer to get 1ms rez.
2016-04-02epee: flush output after a messagemoneromooo-monero1-0/+1
This is equivalent to line buffering, as C++ seems to lack a setvbuf equivalent which alows line buffering.
2016-03-27abstract_tcp_server2: possible fix for exception in handle_acceptmoneromooo-monero1-4/+17
2016-03-25remove unecessary and bad std::move from portable_storage_template_helper.hRiccardo Spagni1-2/+2
2016-03-21Revert "Print stack trace upon exceptions"moneromooo-monero3-4/+4
Ain't nobody got time for link/cmake skullduggery. This reverts commit fff238ec94ac6d45fc18c315d7bc590ddfaad63d.
2016-03-20Merge pull request #736Riccardo Spagni1-0/+8
2b4cab3 epee: fix potential hang on exit (moneromooo-monero)
2016-03-20epee: fix potential hang on exitmoneromooo-monero1-0/+8
Also close sockets on failure, just in case
2016-03-19Print stack trace upon exceptionsmoneromooo-monero3-4/+4
Useful for debugging users' logs
2016-03-12epee: fix bug deleting more than one connection at oncemoneromooo-monero1-0/+1
2016-03-11Merge pull request #712Riccardo Spagni4-19/+19
66c2fc7 Need to link boost::chrono in more places now (Howard Chu) b937a2c Use boost::thread instead of std::thread (Howard Chu)
2016-03-11WIN32 thread_id is OS-dependent not compiler-dependentHoward Chu1-1/+7
2016-03-11Use boost::thread instead of std::threadHoward Chu4-19/+19
and all other associated IPC
2016-02-22move g_test_dbg_lock_sleep from a global to a function level staticmoneromooo-monero1-5/+12
This avoids the need to define that variable in every program which uses epee.
2016-02-18Fix crash in std::map for connections_mapHoward Chu1-1/+2
Use boost::unordered_map instead.
2016-02-18std::condvar is broken on Win32 with gcc/g++ 4.8 tooHoward Chu1-6/+4
Use boost...
2016-02-18Use boost::thread instead of std::threadHoward Chu1-2/+3
std::thread crashes on (at least) ARMv6 g++ 4.8/4.9
2016-02-13epee: always call the PRNG through the locked APImoneromooo-monero1-1/+1
2016-01-30epee: use generate_random_bytes for new random uuidsmoneromooo-monero1-1/+6
Instead of using boost::uuids::generate_random, which uses uninitialized stuff *on purpose*, just to annoy people who use valgrind
2016-01-30epee: remove dodgy random code that nobody usesmoneromooo-monero1-9/+0
in case someone might want to use it
2016-01-25Merge pull request #622Riccardo Spagni1-1/+1
e514f0a even more typos (Henning Kopp) 9abc4b8 more typos fixed (Henning Kopp) 0693f3c fixed typo (Henning Kopp)
2016-01-25more typos fixedHenning Kopp1-1/+1
2016-01-21OpenBSD support for Monero.me0wmix1-0/+7
2016-01-03ARM chars are unsignedHoward Chu1-1/+1
2016-01-02IP_TOS not supported before Windows7Howard Chu1-1/+4
2015-12-23epee: regularly cleanup connections we kept a reference tomoneromooo-monero2-4/+23
Since connections from the ::connect method are now kept in a deque to be able to cancel them on exit, this leaks both memory and a file descriptor. Here, we clean those up after 30 seconds, to avoid this. 30 seconds is higher then the 5 second timeout used in the async code, so this should be safe. However, this is an assumption which would break if that async code was to start relying on longer timeouts.
2015-12-22epee: fix hang on exitmoneromooo-monero2-1/+25
When the boost ioservice is stopped, pending work notifications will not happen. This includes deadline timers, which would otherwise time out the now cancelled I/O operations. When this happens just after starting a new connect operation, this can leave that operations in a state where it won't receive either the completion notification nor a timeout, causing a hang. This is fixed by keeping a list of connections corresponding to the connect operations, and cancelling them before stopping the boost ioservice. Note that the list of these connections can grow unbounded, as they're never cleaned up. Cleaning them up would involve working out which connections do not have any pending work, and it's not quite clear yet how to go about this.
2015-12-19epee: make log macros behave like statementsmoneromooo-monero1-22/+22
In particular, make this kind of thing do what one expects it to do: if (x) LOG_PRINT("True"); else LOG_PRINT("No");
2015-12-06console_handler: catch exception inside the input loopmoneromooo-monero1-32/+37
This prevents an exception from existing the loop without calling the exit handler, if one is defined. The daemon defines one, which stops the p2p layer, and will only exit once the p2p layer is shut down. This would cause a hang upon an exception, as the input thread would have exited and the daemon would wait forever with no console user input.
2015-11-30Merge pull request #507Riccardo Spagni1-9/+21
62e49a5 wallet: optional automatic refresh from the daemon (moneromooo-monero)
2015-11-28wallet: optional automatic refresh from the daemonmoneromooo-monero1-9/+21
The daemon will be polled every 90 seconds for new blocks. It is enabled by default, and can be turned on/off with set auto-refresh 1 and set auto-refresh 0 in the wallet.
2015-11-27core_rpc_server: add a --restricted-rpc optionmoneromooo-monero1-2/+4
It does not expose the RPC for commands like start_mining, etc (ie, commands a public node operator might want to be restricted)
2015-11-23Add IP blocking for misbehaving nodes (adapted from Boolberry)Javier Smooth1-3/+1
With minor cleanup and fixes (spelling, indent) by moneromooo
2015-10-21console_handler: silence spurious message when exiting daemonmoneromooo-monero1-1/+1
The daemon registers a custom exit command, which cause the loop to stop. Catch this case before printing "Failed to read line" as this is an expected case.
2015-08-16epee: Don't set log file name when process path name isn't foundwarptangent1-1/+2
If process path name isn't found, then leave log file name blank. This also applies if a process name is found, but it's blank after removing a trailing dot extension.
2015-07-18console_handler: do not call a NULL function pointermoneromooo-monero1-1/+2
The exit_handler can be NULL.
2015-07-18console_handler: check for eof before trying to use inputmoneromooo-monero1-4/+5
We'll get there without input if we exited
2015-06-03fix ^D exit for bitmonerodmoneromooo-monero1-8/+8
It uses the async console handler differently than simplewallet, and wasn't running the same exit code, causing it to never actually exit after breaking out of the console entry loop.
2015-05-30console_handler: handle EOF properlymoneromooo-monero1-3/+19
Exit instead of reading "empty" commands in an infinite loop.
2015-05-25Fix compile for GCC 5.1.0warptangent1-1/+1
Add fix for compile error with multiple uses of peerid_type (uint64_t) variable in lambda expression. - known GCC issue: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65843 epee: replace return value of nullptr for expected boolean with false. Fixes #231.
2015-04-10[fix] log level change. compilation: dns, testsrfree2monero1-2/+2
old unbound #warning does not block compilation unit tests build fine. Even though the RPC/P2P network type is required again
2015-04-08[fix] Network 1.8: unlimited the RPC connectionsrfree2monero3-59/+112
works for unit tests build, too
2015-04-01[fix] mac os x includes std::random...rfree2monero1-0/+4
2015-04-01remerged; commands JSON. logging upgrade. doxygenrfree2monero1-1/+0
2015-04-01Merge remote-tracking branch 'monero-official/master' into network-1.6-work1rfree2monero2-63/+62
2015-03-27Restore daemon interactive modeThomas Winget2-9/+11
Daemon interactive mode is now working again. RPC mapped calls in daemon and wallet have both had connection_context removed as an argument as that argument was not being used anywhere.
2015-02-24Daemonize changes pulled in -- daemon buildsThomas Winget1-54/+51
many RPC functions added by the daemonize changes (and related changes on the upstream dev branch that were not merged) were commented out (apart from return). Other than that, this *should* work...at any rate, it builds, and that's something.
2015-02-202014 network limit 1.2 +utils +toc -doc -drmonerorfree2monero2-15/+18
new update of the pr with network limits more debug options: discarding downloaded blocks all or after given height. trying to trigger the locking errors. debug levels polished/tuned to sane values. debug/logging improved. warning: this pr should be correct code, but it could make an existing (in master version) locking error appear more often. it's a race on the list (map) of peers, e.g. between closing/deleting them versus working on them in net-limit sleep in sending chunk. the bug is not in this code/this pr, but in the master version. the locking problem of master will be fixed in other pr. problem is ub, and in practice is seems to usually cause program abort (tested on debian stable with updated gcc). see --help for option to add sleep to trigger the error faster.
2015-02-20fixed size_t on windowsrfree2monero1-2/+8
thought it was already fixed, apparently commit got lost somewhere
2015-02-202014 network limit 1.1 +utils +toc -doc -drmonerorfree2monero5-16/+101
Update of the PR with network limits works very well for all speeds (but remember that low download speed can stop upload because we then slow down downloading of blockchain requests too) more debug options fixed pedantic warnings in our code should work again on Mac OS X and FreeBSD fixed warning about size_t tested on Debian, Ubuntu, Windows(testing now) TCP options and ToS (QoS) flag FIXED peer number limit FIXED some spikes in ingress/download FIXED problems when other up and down limit
2015-02-202014 network limit 1.0a +utils +toc -doc -drmonerorfree2monero3-127/+336
commands and options for network limiting works very well e.g. for 50 KiB/sec up and down ToS (QoS) flag peer number limit TODO some spikes in ingress/download TODO problems when other up and down limit added "otshell utils" - simple logging (with colors, text files channels)
2015-01-02year updated in licenseRiccardo Spagni32-32/+32
2014-10-02forgot to add connection context to log lineRiccardo Spagni1-1/+1
2014-10-02moved non-critical p2p errors to l2Riccardo Spagni2-2/+2
2014-09-29dependencies enforced, send que error message log level movedRiccardo Spagni1-1/+1
2014-09-15increase ABSTRACT_SERVER_SEND_QUE_MAX_COUNT to a more sane valueRiccardo Spagni1-1/+1
2014-09-09moved non-critical warnings and errors to log level 1fluffypony6-9/+10
2014-07-25move modified epee code to new classes, revert licensefluffypony87-2215/+1820
2014-07-23License updated to BSD 3-clausefluffypony87-1820/+2215
2014-06-13Fixed console handler not properly exiting on SIGINT and suchThomas Winget1-1/+7
2014-06-06removed continue issuefluffypony1-1/+0
2014-06-04don't fall apart if you can't get_linefluffypony1-3/+2
2014-05-25extra filesmydesktop4-0/+433
2014-05-250.8.8updatemydesktop11-192/+101
2014-05-03initial [broken] updatemydesktop1-1/+1
2014-04-30mac osx building fixesmydesktop3-5/+5
2014-04-30various fixes to allow mac osx compilationmydesktop2-3/+3
2014-04-07Improvements in JSON RPCAntonio Juarez5-57/+67
2014-04-02json rpc for wallet and bugfixAntonio Juarez6-21/+100
2014-03-20some fixesAntonio Juarez28-308/+597
2014-03-03moved all stuff to githubAntonio Juarez89-0/+22294