aboutsummaryrefslogtreecommitdiff
path: root/contrib/epee/include/net/http_client.h
Commit message (Collapse)AuthorAgeFilesLines
* http: share deterministic header field parserselsta2026-06-211-57/+43
|
* Revert "http_client: reduce number of packets sent for small bodies"jeffro2562024-03-101-26/+16
| | | | This reverts commit e0b2123c324ae80177fd7c6b0516a9f8840803d9.
* http_client: reduce number of packets sent for small bodiesjeffro2562023-10-151-16/+26
|
* EPEE: Remove gzip_encoding.hJeffrey2022-04-221-10/+1
|
* Refactor out to_nonconst_iterator.hJeffrey2022-04-181-1/+0
| | | | | Relevant commit on old PR: 2499269696192ce30dd125ddee90a80d4326dff9
* Split epee/string_tools.h and encapsulate boost::lexical_castmj-xmr2021-04-161-1/+1
|
* Change epee binary output from std::stringstream to byte_streamLee Clagett2020-10-101-1/+1
|
* wallet2_api: implement runtime proxy configurationxiphon2020-07-201-8/+0
|
* Merge pull request #6446luigi11112020-05-011-0/+5
|\ | | | | | | e509ede trezor: adapt to new passphrase mechanism (ph4r05)
| * trezor: adapt to new passphrase mechanismDusan Klinec2020-04-271-0/+5
| | | | | | | | | | | | | | | | | | - choice where to enter passphrase is now made on the host - use wipeable string in the comm stack - wipe passphrase memory - protocol optimizations, prepare for new firmware version - minor fixes and improvements - tests fixes, HF12 support
* | Allow wallet2.h to run in WebAssemblywoodser2020-04-151-152/+24
|/ | | | | | | - Add abstract_http_client.h which http_client.h extends. - Replace simple_http_client with abstract_http_client in wallet2, message_store, message_transporter, and node_rpc_proxy. - Import and export wallet data in wallet2. - Use #if defined __EMSCRIPTEN__ directives to skip incompatible code.
* wallet: new --offline optionmoneromooo-monero2019-04-151-0/+12
| | | | | It will avoid connecting to a daemon (so useful for cold signing using a RPC wallet), and not perform DNS queries.
* simplewallet: new net_stats commandmoneromooo-monero2019-04-111-0/+10
| | | | displays total sent and received bytes
* Pass SSL arguments via one class and use shared_ptr instead of referenceLee Clagett2019-04-071-15/+4
|
* Change SSL certificate file list to OpenSSL builtin load_verify_locationLee Clagett2019-04-061-6/+6
| | | | | | | | | | | | | 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.
* Merge pull request #5348Riccardo Spagni2019-04-061-3/+3
|\ | | | | | | 59776a64 epee: some more minor JSON parsing speedup (moneromooo-monero)
| * epee: some more minor JSON parsing speedupmoneromooo-monero2019-03-251-3/+3
| |
* | Added socks proxy (tor/i2pd/kovri) support to walletLee Clagett2019-03-251-1/+8
|/
* epee: add SSL supportMartijn Otto2019-03-051-4/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* epee: add SSL supportmoneromooo-monero2019-02-021-9/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* Fix typos in various filesDimitris Apostolou2018-03-151-1/+1
|
* http_client: rewrite header parsing manually for speedmoneromooo-monero2017-12-231-72/+93
| | | | boost::regex is stupendously atrocious at parsing malformed data
* tests: add http client fuzz testmoneromooo-monero2017-12-231-3/+14
|
* move includes around to lessen overall loadmoneromooo-monero2017-12-161-0/+1
|
* Merge pull request #2629Riccardo Spagni2017-11-141-2/+0
|\ | | | | | | 383ff4f6 remove "using namespace std" from headers (moneromooo-monero)
| * remove "using namespace std" from headersmoneromooo-monero2017-11-141-2/+0
| | | | | | | | | | | | | | It's nasty, and actually breaks on Solaris, where if.h fails to build due to: struct map *if_memmap;
* | Fix file permission issueTim L2017-11-031-0/+0
|/ | | | This branch fixes a file permission issue introduced by https://github.com/monero-project/monero/commit/69c37200aa87f100f731e755bdca7a0dc6ae820a
* RPC Add cross origin resource sharing supportTim L2017-10-301-5/+7
|
* epee http_client SSL supportJaquee2017-10-151-5/+7
|
* http_client: add getters for host and portmoneromooo-monero2017-08-221-0/+3
|
* http_client: allow cancelling a downloadmoneromooo-monero2017-03-051-2/+10
|
* http_client: allow derived class to get headers at startmoneromooo-monero2017-03-051-0/+11
|
* http_client: add a couple constsmoneromooo-monero2017-02-201-2/+2
|
* Add server auth to monerod, and client auth to wallet-cli and wallet-rpcLee Clagett2017-02-061-27/+62
|
* Updates to epee HTTP client codeLee Clagett2017-01-251-51/+43
| | | | | | | | - 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
* Change logging to easylogging++moneromooo-monero2017-01-161-7/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* epee: add functions to convert from URL format (ie, %XX values)moneromooo-monero2016-11-281-0/+30
|
* epee: optionally restrict HTTP service to a configurable user agentmoneromooo-monero2016-09-181-5/+7
| | | | | | | | 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.
* more typos fixedHenning Kopp2016-01-251-1/+1
|
* year updated in licenseRiccardo Spagni2015-01-021-1/+1
|
* move modified epee code to new classes, revert licensefluffypony2014-07-251-25/+23
|
* License updated to BSD 3-clausefluffypony2014-07-231-23/+25
|
* initial [broken] updatemydesktop2014-05-031-1/+1
|
* json rpc for wallet and bugfixAntonio Juarez2014-04-021-1/+1
|
* moved all stuff to githubAntonio Juarez2014-03-031-0/+875