Better error handling for SSL
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user