From 1ce418929a17c063a0a2e3b176b82d280ef053a6 Mon Sep 17 00:00:00 2001 From: Warren Togami Date: Fri, 25 Oct 2013 23:21:21 -1000 Subject: Split MIN_PROTO_VERSION into INIT_PROTO_VERSION and MIN_PEER_PROTO_VERSION INIT_PROTO_VERSION is the initial version, after a succesful version/verack it is increased to a negotiated version. MIN_PEER_PROTO_VERSION could be a different value to disconnect from peers older than a specified version. --- src/main.cpp | 5 ++--- src/net.h | 4 ++-- src/version.h | 7 +++++-- 3 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 01a1babc7f..0c775b6779 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -3377,10 +3377,9 @@ bool static ProcessMessage(CNode* pfrom, string strCommand, CDataStream& vRecv) CAddress addrFrom; uint64 nNonce = 1; vRecv >> pfrom->nVersion >> pfrom->nServices >> nTime >> addrMe; - if (pfrom->nVersion < MIN_PROTO_VERSION) + if (pfrom->nVersion < MIN_PEER_PROTO_VERSION) { - // Since February 20, 2012, the protocol is initiated at version 209, - // and earlier versions are no longer supported + // disconnect from peers older than this proto version LogPrintf("partner %s using obsolete version %i; disconnecting\n", pfrom->addr.ToString().c_str(), pfrom->nVersion); pfrom->fDisconnect = true; return false; diff --git a/src/net.h b/src/net.h index a1dc19df34..ffa8681641 100644 --- a/src/net.h +++ b/src/net.h @@ -243,11 +243,11 @@ public: int64 nPingUsecTime; bool fPingQueued; - CNode(SOCKET hSocketIn, CAddress addrIn, std::string addrNameIn = "", bool fInboundIn=false) : ssSend(SER_NETWORK, MIN_PROTO_VERSION) + CNode(SOCKET hSocketIn, CAddress addrIn, std::string addrNameIn = "", bool fInboundIn=false) : ssSend(SER_NETWORK, INIT_PROTO_VERSION) { nServices = 0; hSocket = hSocketIn; - nRecvVersion = MIN_PROTO_VERSION; + nRecvVersion = INIT_PROTO_VERSION; nLastSend = 0; nLastRecv = 0; nSendBytes = 0; diff --git a/src/version.h b/src/version.h index f1e7c4cd7b..f5fa9f213e 100644 --- a/src/version.h +++ b/src/version.h @@ -27,8 +27,11 @@ extern const std::string CLIENT_DATE; static const int PROTOCOL_VERSION = 70001; -// earlier versions not supported as of Feb 2012, and are disconnected -static const int MIN_PROTO_VERSION = 209; +// intial proto version, to be increased after version/verack negotiation +static const int INIT_PROTO_VERSION = 209; + +// disconnect from peers older than this proto version +static const int MIN_PEER_PROTO_VERSION = 209; // nTime field added to CAddress, starting with this version; // if possible, avoid requesting addresses nodes older than this -- cgit v1.2.3