Age | Commit message (Collapse) | Author |
|
After the tinyformat switch sprintf() family functions support passing
actual std::string objects.
Remove unnecessary c_str calls (236 of them) in logging and formatting.
|
|
Moved includes of "db.h" into #ifdef ENABLE_WALLET blocks or remove
them.
|
|
80ecf67 Add ThreadGetMyExternalIP to net thread group (Gavin Andresen)
|
|
Fixes #3372 -- crash at shutdown.
|
|
|
|
This was a leftover from the times in which
peers.dat depended in BDB.
Other functions in db.cpp still depend on BerkelyDB,
to be able to compile without BDB this (small)
functionality needs to be moved to another file.
|
|
|
|
379778b core: remove includes in .cpp, if header is already in .h (Philip Kaufmann)
|
|
|
|
- example: if util.h includes stdint.h, remove it from util.cpp, as
util.h is the first header included in util.cpp
|
|
Use misc methods of avoiding unnecesary header includes.
Replace int typedefs with int##_t from stdint.h.
Replace PRI64[xdu] with PRI[xdu]64 from inttypes.h.
Normalize QT_VERSION ifs where possible.
Resolve some indirect dependencies as direct ones.
Remove extern declarations from .cpp files.
|
|
|
|
I needed this to test the new "reject" p2p message, but it should be generally
useful for fuzz-testing network message handling code.
|
|
The existing CNode::addrLocal member is revealed to the user,
as an address string, similar to the existing "addr" field.
Instead of showing garbage or empty string,
it simply will not appear in the output if local address not known yet.
|
|
Allow SendMessages to run partially without cs_main
|
|
db0e8cc Bump Year Number to 2013 (super3)
|
|
|
|
|
|
[QT] Add network traffic graph to debug window
|
|
Refactor/encapsulate chain globals into a CChain class
|
|
|
|
|
|
New RPC "ping" command to request ping.
Implemented "pong" message handler.
New "pingtime" field in getpeerinfo, to provide results to user.
New "pingwait" field, to show pings still in flight, to better see newly lagging peers.
|
|
|
|
|
|
Partial solaris support
|
|
Replace the loop macro with while (true). The #define caused
problems for Qt.
|
|
|
|
- fixes src\net.cpp:1601: Error:invalid conversion from 'void*' to
'const char*' [-fpermissive] in a setsockopt() call on Win32 that was
found by using MinGW 4.8.1 compiler suite
|
|
|
|
The new class is accessed via the Params() method and holds
most things that vary between main, test and regtest networks.
The regtest mode has two purposes, one is to run the
bitcoind/bitcoinj comparison tool which compares two separate
implementations of the Bitcoin protocol looking for divergence.
The other is that when run, you get a local node which can mine
a single block instantly, which is highly convenient for testing
apps during development as there's no need to wait 10 minutes for
a block on the testnet.
|
|
|
|
- removes our NewThread() function an replaces remaining calls with
boost::thread with our TraceThread template
- remove ExitThread() function
- fix THREAD_PRIORITY_ABOVE_NORMAL for non Windows OSes
|
|
|
|
|
|
Added explicit include of main.h in init.cpp, changed include of init.h to include of main.h in net.cpp.
Added function registration for net.cpp in init.cpp's network initialization.
Removed protocol.cpp's dependency on main.h.
TODO: Remove main.h include in net.cpp.
|
|
|
|
CBlockLocator.
|
|
Instead of killing a connection when the receive buffer overflows,
just temporarily halt receiving before that happens. Also, no
matter what, always allow at least one full message in the receive
buffer (otherwise blocks larger than the configured buffer size
would pause indefinitely).
|
|
As the default can be too low, especially on OSX.
|
|
WSAStartup should be called before using any other socket
functions. BindListenPort is not called if not listening.
Closes #2585.
|
|
Make sure we always have a node to do IBD from
|
|
Discussed a bit on IRC.
|
|
Drop release times for CNode
|
|
|
|
This introduces the concept of the 'sync node', which is the one we
asked for missing blocks. In case the sync node goes away, a new one
will be selected.
For now, the heuristic is very simple, but it can easily be extended
later to add better policies.
|
|
|
|
It seems there were two mechanisms for assessing whether a CNode
was still in use: a refcount and a release timestamp. The latter
seems to have been there for a long time, as a safety mechanism.
However, this timer also keeps CNode objects alive for far longer
than necessary after disconnects, potentially opening up a DoS
window.
This commit removes the timestamp-based mechanism, and replaces
it with an assert(nRefCount >= 0), to verify that the refcounting
is indeed correctly working.
|
|
Limited mapAlreadyAskedFor
|
|
|