diff --git a/tcp_syni.nim b/tcp_syni.nim index 6e4fa9c..dd2dd0f 100644 --- a/tcp_syni.nim +++ b/tcp_syni.nim @@ -250,15 +250,14 @@ proc doAccept(puncher: TcpSyniPuncher, srcIp: IpAddress, let i = puncher.findAcceptAttempt(srcIp, srcPort, peerIp, @[peerPort]) if i == -1: echo "Accepted connection, but no attempt found. Discarding." + continue else: let attempt = puncher.acceptAttempts[i] attempt.future.complete(peer) - # FIXME: we have to check if more attempts on this endpoint exist and break otherwise - else: - let attempts = puncher.findAcceptAttemptsByLocalAddr(srcIp, srcPort) - # FIXME: should attempts have timestamps, so we can decide here which ones to delete? - if attempts.len() <= 1: - break + let attempts = puncher.findAcceptAttemptsByLocalAddr(srcIp, srcPort) + # FIXME: should attempts have timestamps, so we can decide here which ones to delete? + if attempts.len() <= 1: + break sock.close() proc accept*(puncher: TcpSyniPuncher, srcPort: Port, dstIp: IpAddress,