aboutsummaryrefslogtreecommitdiff
path: root/src/protocol.cpp
diff options
context:
space:
mode:
authorWladimir J. van der Laan <laanwj@gmail.com>2016-11-09 11:09:16 +0100
committerWladimir J. van der Laan <laanwj@gmail.com>2016-11-09 11:16:39 +0100
commite9f25ddd0063f7ea65595178d04370d27344305c (patch)
treef6cc113c1a04fba9d4a57443a0f5dee323f56a83 /src/protocol.cpp
parente9847303e708ab71b4d2c22ceb7d65c89615e18a (diff)
downloadbitcoin-e9f25ddd0063f7ea65595178d04370d27344305c.tar.xz
Avoid ugly exception in log on unknown inv type
It is unexpected behavior for `ToString` to raise an exception. It is expected to do a best-effort attempt at formatting but never fail. Catch the exception and simply print unknown inv types as hexadecimal. Fixes #9110.
Diffstat (limited to 'src/protocol.cpp')
-rw-r--r--src/protocol.cpp6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/protocol.cpp b/src/protocol.cpp
index 54ad62b1a2..87d6e06848 100644
--- a/src/protocol.cpp
+++ b/src/protocol.cpp
@@ -181,7 +181,11 @@ std::string CInv::GetCommand() const
std::string CInv::ToString() const
{
- return strprintf("%s %s", GetCommand(), hash.ToString());
+ try {
+ return strprintf("%s %s", GetCommand(), hash.ToString());
+ } catch(const std::out_of_range &) {
+ return strprintf("0x%08x %s", type, hash.ToString());
+ }
}
const std::vector<std::string> &getAllNetMessageTypes()