From eb499370eaef815b9a429eda5cd0a009ebdac131 Mon Sep 17 00:00:00 2001 From: Doug Coleman Date: Mon, 20 Dec 2021 02:45:36 -0600 Subject: [PATCH] io.sockets.secure.openssl: set a terminated slot too so we know we got disconnected --- basis/io/sockets/secure/openssl/openssl.factor | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/basis/io/sockets/secure/openssl/openssl.factor b/basis/io/sockets/secure/openssl/openssl.factor index 63aed6b47f..f054e17d99 100644 --- a/basis/io/sockets/secure/openssl/openssl.factor +++ b/basis/io/sockets/secure/openssl/openssl.factor @@ -187,7 +187,7 @@ M: openssl-context dispose* tri ] with-destructors ; -TUPLE: ssl-handle < disposable file handle connected ; +TUPLE: ssl-handle < disposable file handle connected terminated ; SYMBOL: default-secure-context @@ -275,7 +275,8 @@ PRIVATE> handle ; : ssl-error-syscall ( ssl-handle -- event/f ) - f >>connected drop + f >>connected + t >>terminated drop ERR_get_error { { -1 [ errno { [ ECONNRESET = ] [ EPIPE = ] } 1|| @@ -308,8 +309,12 @@ PRIVATE> : maybe-handshake ( ssl-handle -- ) dup connected>> [ drop ] [ - [ [ do-ssl-accept ] with-timeout ] - [ t swap connected<< ] bi + dup terminated>> [ + drop + ] [ + [ [ do-ssl-accept ] with-timeout ] + [ t swap connected<< ] bi + ] if ] if ; ! Input ports -- 2.34.1