1 files changed, 10 insertions(+), 0 deletions(-)
M bulletin.rkt
M bulletin.rkt => bulletin.rkt +10 -0
@@ 226,6 226,16 @@
['register
(transition 'registering)
(reset)]
+ ['kick (if (eq? state 'closed)
+ (let* ([peer-uname (read sp)]
+ [peer-uname (if (symbol? peer-uname)
+ (symbol->string peer-uname)
+ peer-uname)])
+ (for ([peer _peers]
+ #:when (equal? (hash-ref peer 'username)
+ peer-uname))
+ (set-remove! _peers peer)))
+ (displayln "close the election first"))]
[else (displayln "unknown command")])
(when (not (equal? line ""))
(add-history line))