mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-11-11 22:50:59 +01:00
net: Add and document network messages in protocol.h
- Avoids string typos (by making the compiler check)
- Makes it easier to grep for handling/generation of a certain message type
- Refer directly to documentation by following the symbol in IDE
- Move list of valid message types to protocol.cpp:
protocol.cpp is a more appropriate place for this, and having
the array there makes it easier to keep things consistent.
This commit is contained in:
@@ -12,14 +12,68 @@
|
||||
# include <arpa/inet.h>
|
||||
#endif
|
||||
|
||||
namespace NetMsgType {
|
||||
const char *VERSION="version";
|
||||
const char *VERACK="verack";
|
||||
const char *ADDR="addr";
|
||||
const char *INV="inv";
|
||||
const char *GETDATA="getdata";
|
||||
const char *MERKLEBLOCK="merkleblock";
|
||||
const char *GETBLOCKS="getblocks";
|
||||
const char *GETHEADERS="getheaders";
|
||||
const char *TX="tx";
|
||||
const char *HEADERS="headers";
|
||||
const char *BLOCK="block";
|
||||
const char *GETADDR="getaddr";
|
||||
const char *MEMPOOL="mempool";
|
||||
const char *PING="ping";
|
||||
const char *PONG="pong";
|
||||
const char *ALERT="alert";
|
||||
const char *NOTFOUND="notfound";
|
||||
const char *FILTERLOAD="filterload";
|
||||
const char *FILTERADD="filteradd";
|
||||
const char *FILTERCLEAR="filterclear";
|
||||
const char *REJECT="reject";
|
||||
const char *SENDHEADERS="sendheaders";
|
||||
};
|
||||
|
||||
static const char* ppszTypeName[] =
|
||||
{
|
||||
"ERROR",
|
||||
"tx",
|
||||
"block",
|
||||
"filtered block"
|
||||
"ERROR", // Should never occur
|
||||
NetMsgType::TX,
|
||||
NetMsgType::BLOCK,
|
||||
"filtered block" // Should never occur
|
||||
};
|
||||
|
||||
/** All known message types. Keep this in the same order as the list of
|
||||
* messages above and in protocol.h.
|
||||
*/
|
||||
const static std::string allNetMessageTypes[] = {
|
||||
NetMsgType::VERSION,
|
||||
NetMsgType::VERACK,
|
||||
NetMsgType::ADDR,
|
||||
NetMsgType::INV,
|
||||
NetMsgType::GETDATA,
|
||||
NetMsgType::MERKLEBLOCK,
|
||||
NetMsgType::GETBLOCKS,
|
||||
NetMsgType::GETHEADERS,
|
||||
NetMsgType::TX,
|
||||
NetMsgType::HEADERS,
|
||||
NetMsgType::BLOCK,
|
||||
NetMsgType::GETADDR,
|
||||
NetMsgType::MEMPOOL,
|
||||
NetMsgType::PING,
|
||||
NetMsgType::PONG,
|
||||
NetMsgType::ALERT,
|
||||
NetMsgType::NOTFOUND,
|
||||
NetMsgType::FILTERLOAD,
|
||||
NetMsgType::FILTERADD,
|
||||
NetMsgType::FILTERCLEAR,
|
||||
NetMsgType::REJECT,
|
||||
NetMsgType::SENDHEADERS
|
||||
};
|
||||
const static std::vector<std::string> allNetMessageTypesVec(allNetMessageTypes, allNetMessageTypes+ARRAYLEN(allNetMessageTypes));
|
||||
|
||||
CMessageHeader::CMessageHeader(const MessageStartChars& pchMessageStartIn)
|
||||
{
|
||||
memcpy(pchMessageStart, pchMessageStartIn, MESSAGE_START_SIZE);
|
||||
@@ -140,3 +194,8 @@ std::string CInv::ToString() const
|
||||
{
|
||||
return strprintf("%s %s", GetCommand(), hash.ToString());
|
||||
}
|
||||
|
||||
const std::vector<std::string> &getAllNetMessageTypes()
|
||||
{
|
||||
return allNetMessageTypesVec;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user