diff options
| author | Wladimir J. van der Laan <[email protected]> | 2016-11-09 11:09:16 +0100 |
|---|---|---|
| committer | Wladimir J. van der Laan <[email protected]> | 2016-11-09 11:16:39 +0100 |
| commit | e9f25ddd0063f7ea65595178d04370d27344305c (patch) | |
| tree | f6cc113c1a04fba9d4a57443a0f5dee323f56a83 /src/protocol.cpp | |
| parent | Merge #8874: Multiple Selection for peer and ban tables (diff) | |
| download | discoin-e9f25ddd0063f7ea65595178d04370d27344305c.tar.xz discoin-e9f25ddd0063f7ea65595178d04370d27344305c.zip | |
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.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/protocol.cpp b/src/protocol.cpp index 54ad62b1a..87d6e0684 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() |