summaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/event/quic/ngx_event_quic_ssl.c27
1 files changed, 16 insertions, 11 deletions
diff --git a/src/event/quic/ngx_event_quic_ssl.c b/src/event/quic/ngx_event_quic_ssl.c
index e961c80cd..355348406 100644
--- a/src/event/quic/ngx_event_quic_ssl.c
+++ b/src/event/quic/ngx_event_quic_ssl.c
@@ -695,30 +695,35 @@ ngx_quic_handshake(ngx_connection_t *c)
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_do_handshake: %d", n);
- if (qc->error) {
- return NGX_ERROR;
- }
-
if (n <= 0) {
sslerr = SSL_get_error(ssl_conn, n);
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, "SSL_get_error: %d",
sslerr);
- if (sslerr != SSL_ERROR_WANT_READ) {
-
- if (c->ssl->handshake_rejected) {
- ngx_connection_error(c, 0, "handshake rejected");
- ERR_clear_error();
+ if (c->ssl->handshake_rejected) {
+ ngx_connection_error(c, 0, "handshake rejected");
+ ERR_clear_error();
+ return NGX_ERROR;
+ }
- return NGX_ERROR;
- }
+ if (qc->error) {
+ ngx_connection_error(c, 0, "SSL_do_handshake() failed");
+ ERR_clear_error();
+ return NGX_ERROR;
+ }
+ if (sslerr != SSL_ERROR_WANT_READ) {
ngx_ssl_connection_error(c, sslerr, 0, "SSL_do_handshake() failed");
return NGX_ERROR;
}
}
+ if (qc->error) {
+ ngx_connection_error(c, 0, "SSL_do_handshake() failed");
+ return NGX_ERROR;
+ }
+
if (!SSL_is_init_finished(ssl_conn)) {
if (ngx_quic_keys_available(qc->keys, NGX_QUIC_ENCRYPTION_EARLY_DATA, 0)
&& qc->client_tp_done)