X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/605347124bd39d347058bc3bd5356c184f654b1d..7a150fe2efd23c4aeeb7262f614b2d31e4455287:/src/openssl.sml diff --git a/src/openssl.sml b/src/openssl.sml index 627b405..ea91848 100644 --- a/src/openssl.sml +++ b/src/openssl.sml @@ -169,7 +169,18 @@ fun accept listener = if F_OpenSSL_SML_do_accept.f' listener <= 0 then NONE else - SOME (F_OpenSSL_SML_pop.f' listener) + let + val bio = F_OpenSSL_SML_pop.f' listener + in + if C.Ptr.isNull' bio then + (ssl_err "Null accepted"; + raise OpenSSL "Null accepted") + else if F_OpenSSL_SML_do_handshake.f' bio <= 0 then + (ssl_err "Handshake failed"; + raise OpenSSL "Handshake failed") + else + SOME bio + end fun peerCN bio = let @@ -186,4 +197,6 @@ fun peerCN bio = ZString.toML' subj end +fun acceptPeerCN bio = peerCN (F_OpenSSL_SML_next.f' bio) + end