need to inform the puncher if quicly_receive fails too

This commit is contained in:
Christian Ulrich 2020-11-17 23:41:20 +01:00
parent 314e1a63fc
commit 06d7d29dc0
No known key found for this signature in database
GPG Key ID: 8241BE099775A097
1 changed files with 6 additions and 4 deletions

View File

@ -310,18 +310,20 @@ proc handleMsg(ctx: QuicP2PContext, msg: string, peerId: string,
conn = c.conn
break
if conn != nil:
discard quicly_receive(conn, nil, peerAddr, addr decoded)
let receiveResult = quicly_receive(conn, nil, peerAddr, addr decoded)
if receiveResult != 0:
ctx.puncher.handleMsg(msg, peerAddr[], peerSockLen)
elif peerId.len == 0:
let acceptResult = quicly_accept(addr conn, addr ctx.quiclyCtx, nil,
peerAddr, addr decoded, nil,
addr ctx.nextCid, nil)
echo "acceptResult: ", acceptResult
if acceptResult == 0:
ctx.addConnection(conn, peerId)
else:
if acceptResult != 0:
# The puncher needs to be informed about this message because it may
# be the peer's response to our respond call.
ctx.puncher.handleMsg(msg, peerAddr[], peerSockLen)
else:
ctx.addConnection(conn, peerId)
proc receive(ctx: QuicP2PContext, peerId: string) {.async.} =
while true: