(use posix srfi-1 openssl srfi-12) (define *testcommands* '(list (uptime) (* 5 4))) (handle-exceptions exn (if ((condition-predicate 'openssl) exn) (begin (display "sometthing went seriously wrong:") (display ((condition-property-accessor 'openssl 'status) exn)) (newline) (display ((condition-property-accessor 'openssl 'message) exn)) (newline)) (abort exn)) (begin (define (testit) (let ((listener (ssl-listen 4443 4 #f 'tls))) (ssl-load-certificate-chain! listener "servercert.pem") (ssl-load-verify-root-certificates! listener "servercert.pem") (ssl-load-private-key! listener "server.key") (ssl-set-verify! listener #t) (let-values (((in out) (ssl-accept listener))) (with-input-from-port in (lambda () (write *testcommands* out) (display "Wrote" (current-error-port)) (newline (current-error-port)) (display *testcommands* (current-error-port)) (newline (current-error-port)) (do ((l "" (read-line))) ((eof-object? l)) (display l)))) ))) (testit)))