diff --git a/puncher.nim b/puncher.nim index abddddb..d57e6ab 100644 --- a/puncher.nim +++ b/puncher.nim @@ -72,6 +72,7 @@ proc handleMsg*(puncher: Puncher, msg: string, peerIp: IpAddress, ## ``initiate`` and ``respond``. if msg != "ACK": return + echo &"handling ACK message from {peerIp}:{peerPort}" let (_, myPort) = puncher.sock.getLocalAddr() let query = Attempt(srcPort: myPort, dstIp: peerIp, dstPorts: @[peerPort]) let i = puncher.attempts.find(query) diff --git a/quicp2p.nim b/quicp2p.nim index 66afef5..4f46fa8 100644 --- a/quicp2p.nim +++ b/quicp2p.nim @@ -310,20 +310,17 @@ proc handleMsg(ctx: QuicP2PContext, msg: string, peerId: string, conn = c.conn break if conn != nil: - 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: - # 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) + discard quicly_receive(conn, nil, peerAddr, addr decoded) + else: + # 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) + if peerId.len == 0: + let acceptResult = quicly_accept(addr conn, addr ctx.quiclyCtx, nil, + peerAddr, addr decoded, nil, + addr ctx.nextCid, nil) + if acceptResult == 0: + ctx.addConnection(conn, peerId) proc receive(ctx: QuicP2PContext, peerId: string) {.async.} = while true: