Welcome to the CHICKEN Scheme pasting service
openssl startup call refactor added by andyjpb on Sun Nov 23 01:58:20 2014
diff -urp v1.6.4/openssl.scm v1.6.4-andyjpb-fix/openssl.scm
--- v1.6.4/openssl.scm 2014-11-23 00:07:52.324097414 +0000
+++ v1.6.4-andyjpb-fix/openssl.scm 2014-11-23 00:57:24.071254788 +0000
@@ -446,7 +446,6 @@ EOF
(outbuf (and outbufsize (fx> outbufsize 0) ""))
(output
(lambda (buffer)
- (startup)
(when (> (##sys#size buffer) 0) ; Undefined behaviour for 0 bytes!
(let loop ((offset 0) (size (##sys#size buffer)))
(let ((ret (ssl-call/timeout
@@ -458,6 +457,7 @@ EOF
(make-output-port
;; write
(lambda (buffer)
+ (startup)
(if outbuf
(begin
(set! outbuf (string-append outbuf buffer))
@@ -476,7 +476,7 @@ EOF
(shutdown)))
;; flush
(lambda ()
- (when outbuf
+ (when (and (startup) outbuf)
(output outbuf)
(set! outbuf "")))))))
(##sys#setslot in 3 "(ssl)")