X-Git-Url: https://git.novaco.in/?a=blobdiff_plain;f=src%2Fnet.h;h=c0cda53f2c3ec548fb53fcecc3702b66fd510eda;hb=0561bbd1c69263dceb24ffacf850788e6e961a13;hp=95bda9ca69afd14eeee69a239c991ff9a9aa18a1;hpb=b97d54355e8239273b50c54dbedfde16ed82fd73;p=novacoin.git diff --git a/src/net.h b/src/net.h index 95bda9c..c0cda53 100644 --- a/src/net.h +++ b/src/net.h @@ -1,7 +1,8 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin developers +// Copyright (c) 2012 The PPCoin developers // Distributed under the MIT/X11 software license, see the accompanying -// file license.txt or http://www.opensource.org/licenses/mit-license.php. +// file COPYING or http://www.opensource.org/licenses/mit-license.php. #ifndef BITCOIN_NET_H #define BITCOIN_NET_H @@ -86,6 +87,7 @@ extern bool fClient; extern bool fAllowDNS; extern uint64 nLocalServices; extern CAddress addrLocalHost; +extern CAddress addrSeenByPeer; extern uint64 nLocalHostNonce; extern boost::array vnThreadsRunning; extern CAddrMan addrman; @@ -127,6 +129,7 @@ public: bool fNetworkNode; bool fSuccessfullyConnected; bool fDisconnect; + bool fHasGrant; // whether to call semOutbound.post() at disconnect protected: int nRefCount; @@ -150,6 +153,7 @@ public: std::set setAddrKnown; bool fGetAddr; std::set setKnown; + uint256 hashCheckpointKnown; // ppcoin: known sent sync-checkpoint // inventory based relay mruset setInventoryKnown; @@ -157,14 +161,10 @@ public: CCriticalSection cs_inventory; std::multimap mapAskFor; - CNode(SOCKET hSocketIn, CAddress addrIn, bool fInboundIn=false) + CNode(SOCKET hSocketIn, CAddress addrIn, bool fInboundIn=false) : vSend(SER_NETWORK, MIN_PROTO_VERSION), vRecv(SER_NETWORK, MIN_PROTO_VERSION) { nServices = 0; hSocket = hSocketIn; - vSend.SetType(SER_NETWORK); - vRecv.SetType(SER_NETWORK); - vSend.SetVersion(MIN_PROTO_VERSION); - vRecv.SetVersion(MIN_PROTO_VERSION); nLastSend = 0; nLastRecv = 0; nLastSendEmpty = GetTime(); @@ -175,6 +175,7 @@ public: nVersion = 0; strSubVer = ""; fClient = false; // set by version message + fHasGrant = false; fInbound = fInboundIn; fNetworkNode = false; fSuccessfullyConnected = false; @@ -187,6 +188,7 @@ public: nStartingHeight = -1; fGetAddr = false; nMisbehavior = 0; + hashCheckpointKnown = 0; setInventoryKnown.max_size(SendBufferSize() / 1000); // Be shy and don't send version until we hear @@ -612,7 +614,7 @@ inline void RelayInventory(const CInv& inv) template void RelayMessage(const CInv& inv, const T& a) { - CDataStream ss(SER_NETWORK); + CDataStream ss(SER_NETWORK, PROTOCOL_VERSION); ss.reserve(10000); ss << a; RelayMessage(inv, ss); @@ -631,7 +633,7 @@ inline void RelayMessage<>(const CInv& inv, const CDataStream& ss) } // Save original serialized message so newer versions are preserved - mapRelay[inv] = ss; + mapRelay.insert(std::make_pair(inv, ss)); vRelayExpiration.push_back(std::make_pair(GetTime() + 15 * 60, inv)); }