From e1043c63fcb6357fb372bd77ebe9c77f2d99d3e8 Mon Sep 17 00:00:00 2001 From: David Florness Date: Tue, 17 Mar 2020 20:39:53 -0600 Subject: [PATCH] Fix kicking peers by username --- bulletin.rkt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/bulletin.rkt b/bulletin.rkt index 9cc786e..d764cb2 100644 --- a/bulletin.rkt +++ b/bulletin.rkt @@ -285,10 +285,12 @@ (transition 'registering) (reset)] ['kick (if (eq? state 'closed) - (for ([(token peer) _peers] - #:when (equal? (hash-ref peer 'username) - (~a (read sp)))) - (hash-remove! _peers token)) + (let ([username (~a (read sp))]) + ; only need to find the first peer with the username + (for/first ([(token peer) _peers] + #:when (equal? (hash-ref peer 'username) + username)) + (hash-remove! _peers token))) (displayln "close the election first"))] ['state (displayln (symbol->string state))] [else (displayln "unknown command")]) -- 2.38.4