end multiplex read loop on exception

This commit is contained in:
Dmitriy Ryajov 2019-09-28 13:54:16 -06:00
parent cc2072d290
commit 68eb142a7c
1 changed files with 2 additions and 1 deletions

View File

@ -136,13 +136,14 @@ proc handle*(m: MultisteamSelect, conn: Connection) {.async, gcsafe.} =
else:
for h in m.handlers:
if (not isNil(h.match) and h.match(ms)) or ms == h.proto:
trace "found handler for", protocol = ms
trace "found handler for", protocol = ms
await conn.writeLp((h.proto & "\n"))
try:
await h.protocol.handler(conn, ms)
return
except Exception as exc:
warn "exception while handling ", msg = exc.msg
return
warn "no handlers for ", protocol = ms
await conn.write(m.na)