Ist dies der richtige Weg zur Fehlerbehandlung in OpenSSL? Und was ist der Unterschied zwischen SSL_get_error
und ERR_get_error
? Die Dokumente sind in dieser Hinsicht ziemlich vage.OpenSSL-Fehlerbehandlung
int ssl_shutdown(SSL *ssl_connection)
{
int rv, err;
ERR_clear_error();
rv = SSL_shutdown(ssl_connection);
if (rv == 0)
SSL_shutdown(ssl_connection);
if (rv < 0)
{
err = SSL_get_error(ssl_connection, rv);
if (err == SSL_ERROR_SSL)
fprintf(stderr, "%s\n", ERR_error_string(ERR_get_error(), NULL));
fprintf(stderr, "%s\n", SSL_state_string(ssl_connection));
return 1;
}
SSL_free(ssl_connection);
return 0;
}
Haben BIO_ * -Aufrufe auch Auswirkungen auf die Fehlerwarteschlange? – Red
Es scheint wie @Red. Ich habe meine Antwort bearbeitet. Weitere Informationen finden Sie unter [diese Website] (https://www.safaribooksonline.com/library/view/network-security-with/059600270X/ch04s02.html). – Jezor