Commit Graph

10767 Commits

Author SHA1 Message Date
Matt Corallo
a72b866b00 Remove bogus assert on number of oubound connections.
This value can be significantly higher if the users uses addnode

Github-Pull: #8944
Rebased-From: 1ab21cf344ed0547de5ae679b7e479cb4b1a923b
2018-10-18 23:32:18 +03:00
Matt Corallo
4faf4c99f7 Comment that most dnsseeds only support some service bits combos 2018-10-18 23:32:08 +03:00
leijurv
e0e706c9cf various typos 2018-10-18 23:30:54 +03:00
Ethan Heilman
82072c13f8 Added feeler connections increasing good addrs in the tried table. 2018-10-18 23:26:46 +03:00
Wladimir J. van der Laan
c808450d87 http: Force-exit event loop after predefined time
This makes sure that the event loop eventually terminates, even if an
event (like an open timeout, or a hanging connection) happens to be
holding it up.
2018-10-18 23:12:41 +03:00
Wladimir J. van der Laan
d57bd81ce6 http: Restrict maximum size of request line + headers
Prevent memory exhaustion by sending lots of data.
Also add a test to `httpbasics.py`.

Closes #6425
2018-10-18 23:12:06 +03:00
Cory Fields
84a208b9d2 net: Have LookupNumeric return a CService directly 2018-10-18 23:10:38 +03:00
Cory Fields
327528fbf1 httpserver: replace boost threads with std
along with mutex/condvar/bind/etc.

httpserver handles its own interruption, so there's no reason not to use std
threading.

While we're at it, may as well kill the BOOST_FOREACH's as well.
2018-10-18 23:08:28 +03:00
Cory Fields
75050e103d httpserver: explicitly detach worker threads
When using std::thread in place of boost::thread, letting the threads destruct
results in a std::terminate. According to the docs, the same thing should be
be happening in later boost versions:
http://www.boost.org/doc/libs/1_55_0/doc/html/thread/thread_management.html#thread.thread_management.thread.destructor

I'm unsure why this hasn't blown up already, but explicitly detaching can't
hurt.
2018-10-18 23:08:19 +03:00
Cory Fields
09d5672a7d httpserver: use a future rather than relying on boost's try_join_for 2018-10-18 23:08:10 +03:00
Wladimir J. van der Laan
3f1e8b16e4 http: use std::move to move HTTPRequest into HTTPWorkItem
Thanks to Cory Fields for the idea.
2018-10-18 23:08:00 +03:00
Wladimir J. van der Laan
8e657ffec9 http: Change boost::scoped_ptr to std::unique_ptr in HTTPRequest
No need for boost here.
2018-10-18 23:07:52 +03:00
Wladimir J. van der Laan
9c27beef9d http: Add log message when work queue is full
More useful error reporting.
2018-10-18 23:07:43 +03:00
Wladimir J. van der Laan
2e29b6003c http: Do a pending c++11 simplification
Use std::unique_ptr for handling work items.

This makes the code more RAII and, as mentioned in the comment, is what
I planned when I wrote the code in the first place.
2018-10-18 23:07:34 +03:00
Pieter Wuille
4b61ea916b Update banning functions from Core 0.13 2018-10-18 23:03:54 +03:00
Cory Fields
620e64b25f net: narrow include scope after moving to netaddress 2018-10-18 22:56:46 +03:00
Cory Fields
4de79a2a14 net: Split resolving out of CService 2018-10-18 22:55:26 +03:00
Cory Fields
e5dba2d293 net: Split resolving out of CNetAddr 2018-10-18 22:55:14 +03:00
Pieter Wuille
fbc3049bd3 Add extra message to avoid a long 'Loading banlist' 2018-10-18 22:52:55 +03:00
Warren Togami
8bfb3ffc96 Use Socks5ErrorString() to decode error responses from socks proxy. 2018-10-18 22:48:06 +03:00
Warren Togami
3368cd6cd0 Make Socks5() InterruptibleRecv() timeout/failures informative.
Before:
2016-05-16 06:10:45 ERROR: Error reading proxy response

After:
2016-05-16 06:10:45 Socks5() connect to k7s5d6jqig4ej4v4.onion:18333 failed: InterruptibleRecv() timeout or other failure
2018-10-18 22:47:56 +03:00
Warren Togami
f8318d8e02 SOCKS5 connecting and connected messages with -debug=net.
They were too noisy and not necessary for normal operation.
2018-10-18 22:47:36 +03:00
Warren Togami
79cecb3125 Make failures to connect via Socks5() more informative and less unnecessarily scary.
* The "ERROR" was printed far too often during normal operation for what was not an error.
* Makes the Socks5() connect failure similar to the IP connect failure in debug.log.

Before:
`2016-05-09 00:15:00 ERROR: Proxy error: host unreachable`

After:
`2016-05-09 00:15:00 Socks5() connect to t6xj6wilh4ytvcs7.onion:18333 failed: host unreachable"`
2018-10-18 22:47:28 +03:00
Pieter Wuille
2e694c450d Randomize name lookup result in ConnectSocketByName 2018-10-18 22:47:16 +03:00
Cory Fields
aaedfba6ee net: disable resolving from storage structures
CNetAddr/CService/CSubnet can no longer resolve DNS.
2018-10-18 22:47:04 +03:00
Cory Fields
d50d2bbded net: resolve outside of storage structures
Rather than allowing CNetAddr/CService/CSubNet to launch DNS queries, require
that addresses are already resolved.

This greatly simplifies async resolve logic, and makes it harder to
accidentally leak DNS queries.
2018-10-18 22:46:54 +03:00
Luke Dashjr
ef6e708ded Combine common error strings for different options so translations can be shared and reused 2018-10-18 22:46:39 +03:00
Gregory Maxwell
4b310cec5d Allow disconnecting a netgroup with only one member in eviction.
With the latest additions there are enough protective measures that
 we can take the training wheels off.
2018-10-18 22:36:01 +03:00
Gregory Maxwell
35c0e679b7 Add recently accepted blocks and txn to AttemptToEvictConnection.
This protects any not-already-protected peers who were the most
 recent four to relay transactions and most recent four to send
 blocks to us.
2018-10-18 22:35:51 +03:00
Pieter Wuille
8f3520e4c5 Do not set extra flags for unfiltered DNS seed results 2018-10-18 22:35:42 +03:00
Pieter Wuille
098b500849 Prevent duplicate connections where one is by name and another by ip 2018-10-18 22:34:08 +03:00
Pieter Wuille
0fc3b89fa1 Rework addnode behaviour 2018-10-18 22:33:58 +03:00
Pieter Wuille
cb47af78cc Introduce REQUIRED_SERVICES constant 2018-10-18 22:32:31 +03:00
Pieter Wuille
c043d2fedc Introduce enum ServiceFlags for service flags 2018-10-18 22:32:23 +03:00
Pieter Wuille
645f26f52b Don't require services in -addnode 2018-10-18 22:29:19 +03:00
Ethan Heilman
4661755f32 Increase test coverage for addrman and addrinfo 2018-10-18 22:29:10 +03:00
Pieter Wuille
be365a0d15 Only store and connect to NODE_NETWORK nodes 2018-10-18 22:26:29 +03:00
Pieter Wuille
0c7d5a8af8 Verify that outbound connections have expected services 2018-10-18 22:26:18 +03:00
Pieter Wuille
f1d80ea69b Keep addrman's nService bits consistent with outbound observations 2018-10-18 22:26:08 +03:00
Wladimir J. van der Laan
1ee8436348 net: Add and document network messages in protocol.h 2018-10-18 22:21:11 +03:00
Wladimir J. van der Laan
0b00741a03 net: Account for sendheaders verack messages
Looks like these were forgotten in #6589.
2018-10-18 22:11:02 +03:00
Jonas Schnelli
68a0b905a7 log bytes recv/sent per command 2018-10-18 22:10:46 +03:00
instagibbs
6a4c64355e rename mapAddrCount to mapNetGroupNodes 2018-10-18 21:56:35 +03:00
Wladimir J. van der Laan
0c6f5bd006 test: Add more test vectors for siphash
Add full test vectors from spec, test per byte and per 8 bytes.

Builds on #8086.
2018-10-18 21:56:12 +03:00
Pieter Wuille
bcac49d880 Support SipHash with arbitrary byte writes 2018-10-18 21:55:46 +03:00
Pieter Wuille
3a1602b31d Use C++11 thread-safe static initializers 2018-10-18 21:55:20 +03:00
Pieter Wuille
a1d4facb14 Use 64-bit SipHash of netgroups in eviction 2018-10-18 21:55:11 +03:00
Patrick Strateman
02cfe3c9e8 Avoid recalculating vchKeyedNetGroup in eviction logic. 2018-10-18 21:53:52 +03:00
Pieter Wuille
f0d583e847 Use global ::fRelayTxes instead of CNode one 2018-10-18 21:49:32 +03:00
Gregory Maxwell
798fb2f972 Do not increment nAttempts by more than one for every Good connection.
This slows the increase of the nAttempts in addrman while partitioned,
 even if the node hasn't yet noticed the partitioning.
2018-10-18 21:49:17 +03:00