From 06874e6aff593e00d587ad756fe781cb980e143b Mon Sep 17 00:00:00 2001 From: Christopher Allan Webber Date: Sat, 10 Dec 2016 18:22:12 -0600 Subject: [PATCH] Correcty disconnect from clients which provide the eof-object --- mudsync/networking.scm | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/mudsync/networking.scm b/mudsync/networking.scm index 5259975..230008f 100644 --- a/mudsync/networking.scm +++ b/mudsync/networking.scm @@ -136,18 +136,13 @@ (define (nm-client-receive-loop nm client client-id) "Make a method to receive client data" (define (loop) - (define line (string-trim-right (read-line client) #\return)) - (nm-handle-line nm client client-id line) - (cond - ;; The port's been closed for some reason, so stop looping - ((port-closed? client) - (nm-handle-port-closed nm client client-id)) - ;; We've reached the EOF object, which means we should close - ;; the port ourselves and stop looping - ((eof-object? (peek-char client)) - (nm-handle-port-eof nm client client-id)) - ;; Otherwise, let's read till the next line! - (else (loop)))) + (define line (read-line client)) + (if (eof-object? line) + (nm-handle-port-eof nm client client-id) + (begin + (nm-handle-line nm client client-id + (string-trim-right line #\return)) + (loop)))) (loop)) (define (nm-handle-port-closed nm client client-id) -- 2.31.1