X-Git-Url: https://git.novaco.in/?p=novacoin.git;a=blobdiff_plain;f=src%2Fprotocol.h;h=ece61840d587cb05c9258182cce18c781bb2257f;hp=613c47f042a6c66cb119d7ef8b071bc35d5207a2;hb=6aba6f08af53e3fa49ab4d1ef002e6771d0ce358;hpb=5fee401fe14aa6459428a26a82f764db70a6a0b9 diff --git a/src/protocol.h b/src/protocol.h index 613c47f..ece6184 100644 --- a/src/protocol.h +++ b/src/protocol.h @@ -1,7 +1,7 @@ // Copyright (c) 2009-2010 Satoshi Nakamoto // Copyright (c) 2009-2012 The Bitcoin 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 __cplusplus # error This header can only be compiled as C++. @@ -12,25 +12,25 @@ #include "serialize.h" #include "netbase.h" -#include "util.h" #include +#include #include "uint256.h" extern bool fTestNet; -static inline unsigned short GetDefaultPort(const bool testnet = fTestNet) +inline unsigned short GetDefaultPort() { - return testnet ? 18333 : 8333; + return static_cast(fTestNet ? 17777 : 7777); } -// -// Message header -// (4) message start -// (12) command -// (4) size -// (4) checksum extern unsigned char pchMessageStart[4]; +/** Message header. + * (4) message start. + * (12) command. + * (4) size. + * (4) checksum. + */ class CMessageHeader { public: @@ -50,25 +50,33 @@ class CMessageHeader // TODO: make private (improves encapsulation) public: - enum { COMMAND_SIZE=12 }; - char pchMessageStart[sizeof(::pchMessageStart)]; + enum { + MESSAGE_START_SIZE=sizeof(::pchMessageStart), + COMMAND_SIZE=12, + MESSAGE_SIZE_SIZE=sizeof(int), + CHECKSUM_SIZE=sizeof(int), + + MESSAGE_SIZE_OFFSET=MESSAGE_START_SIZE+COMMAND_SIZE, + CHECKSUM_OFFSET=MESSAGE_SIZE_OFFSET+MESSAGE_SIZE_SIZE + }; + char pchMessageStart[MESSAGE_START_SIZE]; char pchCommand[COMMAND_SIZE]; unsigned int nMessageSize; unsigned int nChecksum; }; +/** nServices flags */ enum { - NODE_NETWORK = (1 << 0), + NODE_NETWORK = (1 << 0) }; +/** A CService with information about it as peer */ class CAddress : public CService { public: CAddress(); - explicit CAddress(CService ipIn, uint64 nServicesIn=NODE_NETWORK); - - void Init(); + explicit CAddress(CService ipIn, uint64_t nServicesIn=NODE_NETWORK); IMPLEMENT_SERIALIZE ( @@ -77,9 +85,10 @@ class CAddress : public CService if (fRead) pthis->Init(); if (nType & SER_DISK) - READWRITE(nVersion); - if ((nType & SER_DISK) || (nVersion >= 31402 && !(nType & SER_GETHASH))) - READWRITE(nTime); + READWRITE(nVersion); + if ((nType & SER_DISK) || + (nVersion >= CADDR_TIME_VERSION && !(nType & SER_GETHASH))) + READWRITE(nTime); READWRITE(nServices); READWRITE(*pip); ) @@ -88,15 +97,16 @@ class CAddress : public CService // TODO: make private (improves encapsulation) public: - uint64 nServices; + uint64_t nServices; // disk and network only unsigned int nTime; // memory only - int64 nLastTry; + int64_t nLastTry; }; +/** inv message data */ class CInv { public: