int64 nReleaseTime;
int nStartingHeight;
int nMisbehavior;
+ uint64 nSendBytes;
+ uint64 nRecvBytes;
+ bool fSyncNode;
};
SOCKET hSocket;
CDataStream vSend;
CDataStream vRecv;
+ uint64 nSendBytes;
+ uint64 nRecvBytes;
CCriticalSection cs_vSend;
CCriticalSection cs_vRecv;
int64 nLastSend;
hSocket = hSocketIn;
nLastSend = 0;
nLastRecv = 0;
+ nSendBytes = 0;
+ nRecvBytes = 0;
nLastSendEmpty = GetTime();
nTimeConnected = GetTime();
nHeaderStart = -1;
}
}
+
private:
+ // Network usage totals
+ static CCriticalSection cs_totalBytesRecv;
+ static CCriticalSection cs_totalBytesSent;
+ static uint64_t nTotalBytesRecv;
+ static uint64_t nTotalBytesSent;
CNode(const CNode&);
void operator=(const CNode&);
public:
static bool IsBanned(CNetAddr ip);
bool Misbehaving(int howmuch); // 1 == a little, 100 == a lot
void copyStats(CNodeStats &stats);
+ // Network stats
+ static void RecordBytesRecv(uint64_t bytes);
+ static void RecordBytesSent(uint64_t bytes);
+
+ static uint64_t GetTotalBytesRecv();
+ static uint64_t GetTotalBytesSent();
};
inline void RelayInventory(const CInv& inv)