@ -28,6 +28,7 @@
@@ -28,6 +28,7 @@
# include <boost/signals2/signal.hpp>
# include <openssl/rand.h>
class CAddrMan ;
class CBlockIndex ;
class CNode ;
@ -36,6 +37,10 @@ namespace boost {
@@ -36,6 +37,10 @@ namespace boost {
class thread_group ;
}
/** Time between pings automatically sent out for latency probing and keepalive (in seconds). */
static const int PING_INTERVAL = 2 * 60 ;
/** Time after which to disconnect, after waiting for a ping response (or inactivity). */
static const int TIMEOUT_INTERVAL = 20 * 60 ;
/** The maximum number of entries in an 'inv' protocol message */
static const unsigned int MAX_INV_SZ = 50000 ;
/** -upnp default */
@ -217,7 +222,6 @@ public:
@@ -217,7 +222,6 @@ public:
int64_t nLastSend ;
int64_t nLastRecv ;
int64_t nLastSendEmpty ;
int64_t nTimeConnected ;
CAddress addr ;
std : : string addrName ;
@ -273,10 +277,14 @@ public:
@@ -273,10 +277,14 @@ public:
CCriticalSection cs_inventory ;
std : : multimap < int64_t , CInv > mapAskFor ;
// Ping time measurement
// Ping time measurement:
// The pong reply we're expecting, or 0 if no pong expected.
uint64_t nPingNonceSent ;
// Time (in usec) the last ping was sent, or 0 if no ping was ever sent.
int64_t nPingUsecStart ;
// Last measured round-trip time.
int64_t nPingUsecTime ;
// Whether a ping is requested.
bool fPingQueued ;
CNode ( SOCKET hSocketIn , CAddress addrIn , std : : string addrNameIn = " " , bool fInboundIn = false ) : ssSend ( SER_NETWORK , INIT_PROTO_VERSION ) , setAddrKnown ( 5000 )
@ -288,7 +296,6 @@ public:
@@ -288,7 +296,6 @@ public:
nLastRecv = 0 ;
nSendBytes = 0 ;
nRecvBytes = 0 ;
nLastSendEmpty = GetTime ( ) ;
nTimeConnected = GetTime ( ) ;
addr = addrIn ;
addrName = addrNameIn = = " " ? addr . ToStringIPPort ( ) : addrNameIn ;