return ERR_get_error();
}
+int OpenSSL_SML_should_retry(BIO *b) {
+ return BIO_should_retry(b);
+}
+
const char *OpenSSL_SML_lib_error_string(int err) {
return ERR_lib_error_string(err);
}
void OpenSSL_SML_load_BIO_strings(void);
int OpenSSL_SML_get_error(void);
+int OpenSSL_SML_should_retry(BIO *b);
const char *OpenSSL_SML_lib_error_string(int err);
const char *OpenSSL_SML_func_error_string(int err);
const char *OpenSSL_SML_reason_error_string(int err);
(print msgLocal;
print "\n";
Msg.send (bio, MsgOk)))
- handle OpenSSL.OpenSSL _ =>
- print "OpenSSL error\n"
+ handle e as (OpenSSL.OpenSSL s) =>
+ (print "OpenSSL error\n";
+ app (fn x => print (x ^ "\n")) (SMLofNJ.exnHistory e))
| OS.SysErr (s, _) =>
(print "System error: ";
print s;
in
cmdLoop ()
end
- handle OpenSSL.OpenSSL s =>
+ handle e as (OpenSSL.OpenSSL s) =>
(print ("OpenSSL error: " ^ s ^ "\n");
+ app (fn x => print (x ^ "\n")) (SMLofNJ.exnHistory e);
OpenSSL.close bio
handle OpenSSL.OpenSSL _ => ();
loop ())
else
(print (ZString.toML lib);
print ":");
- if C.Ptr.isNull func then
- ()
- else
- (print (ZString.toML func);
- print ":");
- if C.Ptr.isNull reason then
- ()
- else
- print (ZString.toML reason);
- print "\n"
+ if C.Ptr.isNull func then
+ ()
+ else
+ (print (ZString.toML func);
+ print ":");
+ if C.Ptr.isNull reason then
+ ()
+ else
+ print (ZString.toML reason)
end
val readBuf : (C.uchar, C.rw) C.obj C.ptr' = C.alloc' C.S.uchar (Word.fromInt Config.bufSize)