diff --git a/src/protocol.cpp b/src/protocol.cpp index 6a60d8c803..9d9063dc3c 100644 --- a/src/protocol.cpp +++ b/src/protocol.cpp @@ -135,6 +135,7 @@ bool operator<(const CInv &a, const CInv &b) { std::string CInv::GetCommand() const { std::string cmd; + if (type & MSG_EXT_FLAG) cmd.append("extblk-"); switch (GetKind()) { case MSG_TX: return cmd.append(NetMsgType::TX); diff --git a/src/test/inv_tests.cpp b/src/test/inv_tests.cpp index 15e5911db8..6bad22f402 100644 --- a/src/test/inv_tests.cpp +++ b/src/test/inv_tests.cpp @@ -28,4 +28,19 @@ BOOST_AUTO_TEST_CASE(validate_kind) { CheckType(GetDataMsg::MSG_EXT_BLOCK, GetDataMsg::MSG_BLOCK, false, true); } +static void CheckCommand(int type, std::string expected) { + CInv inv(type, uint256()); + BOOST_CHECK_EQUAL(inv.GetCommand(), expected); +} + +/* Validate various inv facilities. */ +BOOST_AUTO_TEST_CASE(validate_cmd) { + CheckCommand(GetDataMsg::MSG_TX, "tx"); + CheckCommand(GetDataMsg::MSG_BLOCK, "block"); + CheckCommand(GetDataMsg::MSG_FILTERED_BLOCK, "merkleblock"); + CheckCommand(GetDataMsg::MSG_CMPCT_BLOCK, "cmpctblock"); + CheckCommand(GetDataMsg::MSG_EXT_TX, "extblk-tx"); + CheckCommand(GetDataMsg::MSG_EXT_BLOCK, "extblk-block"); +} + BOOST_AUTO_TEST_SUITE_END()