commit - 07a751ac2365bdee6d0002632efa996d1dfcfb12
commit + 6ed790cd202d83428c70dc9c8162f9d96b2e8012
blob - 665be5e2551e10f12c9fe469c44c8b0b4186811a
blob + 2cc4ae379f66c72b12a3d0efed902a59f063e4ac
--- net.c
+++ net.c
#include <string.h>
#include <tls.h>
#include <unistd.h>
+
+#include <openssl/err.h>
#if HAVE_ASR_RUN
# include <asr.h>
try_to_connect(0, 0, req);
}
#endif
+
+static void
+ssl_error(const char *where)
+{
+ unsigned long code;
+ char errbuf[256];
+
+ fprintf(stderr, "failure(s) in %s:\n", where);
+ while ((code = ERR_get_error()) != 0) {
+ ERR_error_string_n(code, errbuf, sizeof(errbuf));
+ fprintf(stderr, "- %s\n", errbuf);
+ }
+}
static void
close_conn(int fd, short ev, void *d)
case TLS_WANT_POLLOUT:
yield_w(req, close_conn, NULL);
return;
+ case -1:
+ ssl_error("tls_close");
}
tls_free(req->ctx);
case TLS_WANT_POLLOUT:
yield_w(req, net_tls_handshake, NULL);
return;
+ case -1:
+ ssl_error("tls_handshake");
}
hash = tls_peer_cert_hash(req->ctx);
if (hash == NULL) {
+ ssl_error("tls_peer_cert_hash");
close_with_errf(req, "handshake failed: %s",
tls_error(req->ctx));
return;
case TLS_WANT_POLLOUT:
goto retry;
case -1:
+ ssl_error("tls_read");
what |= EVBUFFER_ERROR;
goto err;
}
case TLS_WANT_POLLOUT:
goto retry;
case -1:
+ ssl_error("tls_write");
what |= EVBUFFER_ERROR;
goto err;
}