~edwargix/tallyard

e1043c63fcb6357fb372bd77ebe9c77f2d99d3e8 — David Florness 5 years ago 6913935
Fix kicking peers by username
1 files changed, 6 insertions(+), 4 deletions(-)

M bulletin.rkt
M bulletin.rkt => bulletin.rkt +6 -4
@@ 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")])