Better error handling for SSL

This commit is contained in:
2022-05-06 18:25:15 -04:00
parent c3e4588afc
commit d6aa216505
4 changed files with 33 additions and 41 deletions

View File

@@ -278,7 +278,9 @@ class Driver {
} else if (error == SSL_ERROR_WANT_WRITE) {
chan.ready_on_pollout = true;
} else {
close_channel(chan, drvssl::errors_string());
std::string error = drvssl::error_string();
if (error == "") error = "unknown error";
close_channel(chan, error);
}
}
@@ -349,7 +351,7 @@ class Driver {
}
void advance_channel(ChanInfo &chan) {
drvssl::assert_errors_empty();
drvssl::clear_all_errors();
switch (chan.state) {
case CHAN_PLAINTEXT:
advance_plaintext(chan);
@@ -367,7 +369,6 @@ class Driver {
assert(false);
break;
}
drvssl::assert_errors_empty();
}
void handle_socket_input_output() {
@@ -527,7 +528,6 @@ class Driver {
ssl_client_insecure_ctx_.reset(drvssl::new_context(SSL_VERIFY_NONE));
ssl_load_certificate_authorities(ssl_client_secure_ctx_.get());
drvssl::ctx_load_dummy_cert(ssl_server_ctx_.get());
drvssl::assert_errors_empty();
handle_lua_source();
recorder_.drv_invoke_event_init(argc, argv);