diff --git a/libp2p/multistream.nim b/libp2p/multistream.nim index c8b2ff66c..a03ee0e36 100644 --- a/libp2p/multistream.nim +++ b/libp2p/multistream.nim @@ -38,6 +38,12 @@ type na: string ls: string + MultistreamHandshakeException* = object of CatchableError + +proc newMultistreamHandshakeException*(): ref Exception {.inline.} = + result = newException(MultistreamHandshakeException, + "could not perform multistream handshake") + proc newMultistream*(): MultistreamSelect = new result result.codec = MSCodec @@ -58,8 +64,8 @@ proc select*(m: MultistreamSelect, result = cast[string]((await conn.readLp())) # read ms header result.removeSuffix("\n") if result != Codec: - trace "handshake failed", codec = result.toHex() - return "" + error "handshake failed", codec = result.toHex() + raise newMultistreamHandshakeException() if proto.len() == 0: # no protocols, must be a handshake call return