links

lynx-like text mode web browser
git clone anongit@rnpnr.xyz:links.git
Log | Files | Refs | Feed | README | LICENSE

Commit: b5cca987dfe6cef4179b02c84044173330ceecc9
Parent: 49dcc0d7d46daed75ade9b0a6aa0e3f556c034cd
Author: opask
Date:   Sat, 26 Jan 2019 13:45:47 -0700

connect.c: delete clear_ssl_errors()

Diffstat:
Mconnect.c | 18+-----------------
Mhttps.c | 17+++++------------
Mlinks.h | 2--
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 *));