Am 10.10.2005, 10:01 Uhr, schrieb felix winkelmann <[EMAIL PROTECTED]>:
On 10/10/05, Thomas Chust <[EMAIL PROTECTED]> wrote:Maybe we could change the egg in a way that allows connection management procedures with signatures identical to tcp-(listen|accept) to be specified, defaulting to the plain tcp ones. One could then specify something like (cut ssl-listen <> <> 'tls) as well and the egg would be ready for future extensions, should someone come up with yet another connection wrapping system, all without creating hard dependencies on extra libraries.Good idea. Adding the necessary hook/parameters should be easy. [...]
Hello,for additional compatibility, I have modified the OpenSSL egg a little, so that "##sys#tcp-port->fileno" and "tcp-addresses" are now supported on SSL ports. I have also prepared a patch for tcp-server parameterizing the communication layer specific procedures. It is attached to this e-mail.
With the patch applied and the most current OpenSSL egg creating an SSL server is trivial:
-----BEGIN CODE SAMPLE-----
(use openssl tcp-server)
(define test-port 4433)
(define lsn (ssl-listen test-port))
(ssl-load-certificate-chain! lsn "server-certificate.pem")
(ssl-load-private-key! lsn "server-key.pem")
(tcp-server-accept-connection-procedure ssl-accept)
(tcp-server-prepare-hard-close-procedure (lambda (_) (void)))
((make-tcp-server
lsn
(lambda ()
(print "I'm your echo")
(let loop ((l (read-line)))
(unless (eof-object? l)
(print l)
(loop (read-line))))))
#t)
-----END CODE SAMPLE-----
cu,
Thomas
tcp-server.patch
Description: Binary data
_______________________________________________ Chicken-users mailing list [email protected] http://lists.nongnu.org/mailman/listinfo/chicken-users
