iGuard against empty responses from servers - holymoly - A tor enabled gopher client written in CHICKEN scheme Err vernunftzentrum.de 70 hgit clone git://vernunftzentrum.de/holymoly.git URL:git://vernunftzentrum.de/holymoly.git vernunftzentrum.de 70 1Log /ckeen/repos/holymoly/log.gph vernunftzentrum.de 70 1Files /ckeen/repos/holymoly/files.gph vernunftzentrum.de 70 1Refs /ckeen/repos/holymoly/refs.gph vernunftzentrum.de 70 1README /ckeen/repos/holymoly/file/README.gph vernunftzentrum.de 70 1LICENSE /ckeen/repos/holymoly/file/LICENSE.gph vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1commit 02329f003f6d70906f71cf8a0c07155c6642551a /ckeen/repos/holymoly/commit/02329f003f6d70906f71cf8a0c07155c6642551a.gph vernunftzentrum.de 70 1parent 6ce1e49ab2c1d57d67c93165ce029de812267e3e /ckeen/repos/holymoly/commit/6ce1e49ab2c1d57d67c93165ce029de812267e3e.gph vernunftzentrum.de 70 hAuthor: Christian Kellermann URL:mailto:ckeen@pestilenz.org vernunftzentrum.de 70 iDate: Wed, 15 Aug 2018 09:36:48 +0200 Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iGuard against empty responses from servers Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 iDiffstat: Err vernunftzentrum.de 70 i holymoly.scm | 25 +++++++++++++++---------- Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i1 file changed, 15 insertions(+), 10 deletions(-) Err vernunftzentrum.de 70 i--- Err vernunftzentrum.de 70 1diff --git a/holymoly.scm b/holymoly.scm /ckeen/repos/holymoly/file/holymoly.scm.gph vernunftzentrum.de 70 i@@ -176,11 +176,15 @@ Err vernunftzentrum.de 70 i (display (string-append resource (string #\return #\linefeed)) o) Err vernunftzentrum.de 70 i (let ((response (if until-eof? Err vernunftzentrum.de 70 i (read-u8vector #f i) Err vernunftzentrum.de 70 i- (read-lines i)))) Err vernunftzentrum.de 70 i+ (read-lines i))) Err vernunftzentrum.de 70 i+ (empty-response Err vernunftzentrum.de 70 i+ (if until-eof? Err vernunftzentrum.de 70 i+ #u8() Err vernunftzentrum.de 70 i+ '("iGot an empty response from server\tfoo\tserver\t70\r\n")))) Err vernunftzentrum.de 70 i (close-input-port i) Err vernunftzentrum.de 70 i (close-output-port o) Err vernunftzentrum.de 70 i- (cond ((null? response) Err vernunftzentrum.de 70 i- '("iGot an empty response from server\tfoo\tserver\t70\r\n")) Err vernunftzentrum.de 70 i+ (cond ((or (eof-object? response) (null? response)) Err vernunftzentrum.de 70 i+ empty-response) Err vernunftzentrum.de 70 i (until-eof? response) Err vernunftzentrum.de 70 i ((pair? response) (butlast response)) Err vernunftzentrum.de 70 i (else (error "Unknown return type of response"))))) Err vernunftzentrum.de 70 i@@ -244,13 +248,14 @@ Err vernunftzentrum.de 70 i (sprintf " > ~a" (entry-title e))))) Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i (define (xdg-open r) Err vernunftzentrum.de 70 i- (if (string? r) Err vernunftzentrum.de 70 i- (process "xdg-open" (list (string-join (cdr (string-split r ":")) ":"))) Err vernunftzentrum.de 70 i- (let-values (((fd temp-path) (file-mkstemp "/tmp/mytemporary.XXXXXX"))) Err vernunftzentrum.de 70 i- (let ((temp-port (open-output-file* fd))) Err vernunftzentrum.de 70 i- (write-u8vector r temp-port) Err vernunftzentrum.de 70 i- (close-output-port temp-port)) Err vernunftzentrum.de 70 i- (process "xdg-open" (list temp-path)))) Err vernunftzentrum.de 70 i+ (cond ((string? r) Err vernunftzentrum.de 70 i+ (process "xdg-open" (list (string-join (cdr (string-split r ":")) ":")))) Err vernunftzentrum.de 70 i+ ((and (u8vector? r) (not (zero? (u8vector-length r)))) Err vernunftzentrum.de 70 i+ (let-values (((fd temp-path) (file-mkstemp "/tmp/holymoly.XXXXXX"))) Err vernunftzentrum.de 70 i+ (let ((temp-port (open-output-file* fd))) Err vernunftzentrum.de 70 i+ (write-u8vector r temp-port) Err vernunftzentrum.de 70 i+ (close-output-port temp-port)) Err vernunftzentrum.de 70 i+ (process "xdg-open" (list temp-path))))) Err vernunftzentrum.de 70 i (previous-page)) Err vernunftzentrum.de 70 i Err vernunftzentrum.de 70 i (define history '()) Err vernunftzentrum.de 70 .