diff --git a/scsh/network.scm b/scsh/network.scm index 8f94d0a..c69d77d 100644 --- a/scsh/network.scm +++ b/scsh/network.scm @@ -421,8 +421,9 @@ reader sockfd flags s start end from)) (let ((addr (make-addr from))) - (let loop ((i start)) - (if (>= i end) (- i start) + (let loop ((i start) (remote #f)) + (if (>= i end) + (values (- i start) remote) (receive (err nread) (reader sockfd flags s i end addr) (cond (err (if (= err errno/intr) (loop i) @@ -435,7 +436,7 @@ (let ((result (- i start))) (and (not (zero? result)) result)) from)) - (else (loop (+ i nread))))))))) + (else (loop (+ i nread) from)))))))) (define (receive-message/partial socket len . maybe-flags) (let ((flags (:optional maybe-flags 0)))