Commit: b5cca987dfe6cef4179b02c84044173330ceecc9
Parent: 49dcc0d7d46daed75ade9b0a6aa0e3f556c034cd
Author: opask
Date: Sat, 26 Jan 2019 13:45:47 -0700
connect.c: delete clear_ssl_errors()
Diffstat:
3 files changed, 6 insertions(+), 31 deletions(-)
diff --git a/connect.c b/connect.c
@@ -5,18 +5,6 @@
#include "links.h"
-static void log_ssl_error(void)
-{
- unsigned long err;
- while ((err = ERR_get_error())) ;
-}
-
-void clear_ssl_errors(int line)
-{
- if (ERR_peek_error())
- log_ssl_error();
-}
-
static void connected(void *);
static void update_dns_priority(struct connection *);
static void connected_callback(struct connection *);
@@ -368,7 +356,6 @@ static void ssl_want_io(void *c_)
set_handlers(*b->sock, NULL, ssl_want_io, c);
break;
default:
- log_ssl_error();
ssl_downgrade_dance(c);
break;
}
@@ -673,8 +660,7 @@ skip_numeric_address:
case SSL_ERROR_NONE:
break;
default:
- ssl_error:
- log_ssl_error();
+ ssl_error:
ssl_downgrade_dance(c);
return;
}
@@ -793,7 +779,6 @@ static void write_select(void *c_)
return;
}
setcstate(c, wr ? (err == SSL_ERROR_SYSCALL ? get_error_from_errno(errno) : S_SSL_ERROR) : S_CANT_WRITE);
- log_ssl_error();
if (!wr || err == SSL_ERROR_SYSCALL) retry_connection(c);
else abort_connection(c);
return;
@@ -874,7 +859,6 @@ read_more:
return;
}
setcstate(c, rd ? (err == SSL_ERROR_SYSCALL ? get_error_from_errno(errno) : S_SSL_ERROR) : S_CANT_READ);
- log_ssl_error();
if (!rd || err == SSL_ERROR_SYSCALL) retry_connection(c);
else abort_connection(c);
return;
diff --git a/https.c b/https.c
@@ -66,7 +66,6 @@ links_ssl *getSSL(void)
ssl = xmalloc(sizeof(links_ssl));
ssl->ctx = contexts;
ssl->ssl = SSL_new(ssl->ctx);
- clear_ssl_errors(__LINE__);
if (!ssl->ssl) {
free(ssl);
return NULL;
@@ -82,9 +81,7 @@ void freeSSL(links_ssl *ssl)
if (!ssl || ssl == DUMMY)
return;
- if (SSL_shutdown(ssl->ssl) < 0)
- clear_ssl_errors(__LINE__);
-
+ SSL_shutdown(ssl->ssl);
SSL_free(ssl->ssl);
free(ssl);
}
@@ -122,18 +119,15 @@ int verify_ssl_certificate(links_ssl *ssl, unsigned char *host)
X509 *server_cert;
int ret;
- if (SSL_get_verify_result(ssl->ssl) != X509_V_OK) {
- clear_ssl_errors(__LINE__);
+ if (SSL_get_verify_result(ssl->ssl) != X509_V_OK)
return S_INVALID_CERTIFICATE;
- }
+
server_cert = SSL_get_peer_certificate(ssl->ssl);
- if (!server_cert) {
- clear_ssl_errors(__LINE__);
+ if (!server_cert)
return S_INVALID_CERTIFICATE;
- }
+
ret = verify_ssl_host_name(server_cert, (char *)host);
X509_free(server_cert);
- clear_ssl_errors(__LINE__);
return ret;
}
@@ -250,7 +244,6 @@ void retrieve_ssl_session(struct connection *c)
p = get_port(orig_url);
set_session_cache_entry(c->ssl->ctx, h, p, s);
free(h);
- clear_ssl_errors(__LINE__);
}
}
diff --git a/links.h b/links.h
@@ -34,7 +34,6 @@
#include <arpa/inet.h>
#include <openssl/ssl.h>
-#include <openssl/err.h>
#if defined(G)
#if defined(HAVE_PNG_H)
@@ -787,7 +786,6 @@ struct read_buffer {
unsigned char data[1];
};
-void clear_ssl_errors(int line);
int socket_and_bind(int pf, unsigned char *address);
void close_socket(int *);
void make_connection(struct connection *, int, int *, void (*)(struct connection *));