commit - 53bdae38fe6062469d8b444d5e6bd99ff34ca94b
commit + c5edb157405883dc7c869beb2c1e05cefe325fdf
blob - 45c5d0b59a5d0383ce49a138bef061f5a76a7b06
blob + ea2eb60c4ba9a2b0ac0784e680a805fa45a2ddc5
--- server.c
+++ server.c
switch (tls_handshake(c->ctx)) {
case 0: /* success */
- case -1: /* already handshaked */
break;
+ case -1:
+ log_warnx("tls_handshake failed: %s", tls_error(c->ctx));
+ client_close(c);
+ return;
case TLS_WANT_POLLIN:
event_once(c->fd, EV_READ, handle_handshake, c, NULL);
return;
c->pfd = -1;
}
- bufferevent_disable(c->bev, EVBUFFER_READ|EVBUFFER_WRITE);
- bufferevent_free(c->bev);
- c->bev = NULL;
+ if (c->bev != NULL) {
+ bufferevent_disable(c->bev, EVBUFFER_READ|EVBUFFER_WRITE);
+ bufferevent_free(c->bev);
+ }
if (c->proxyevset &&
event_pending(&c->proxyev, EV_READ|EV_WRITE, NULL)) {