# HG changeset patch # User Sergey Kandaurov # Date 1592902620 -10800 # Node ID 97adb87f149bd7b23704e65920fd1e17db36cfd7 # Parent df29219988bcf160b838e368ac275474c3465c74 Get rid of hardcoded numbers used for quic handshake errors. diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c --- a/src/event/ngx_event_quic.c +++ b/src/event/ngx_event_quic.c @@ -421,7 +421,7 @@ ngx_quic_add_handshake_data(ngx_ssl_conn if (client_params_len == 0) { /* quic-tls 8.2 */ - qc->error = 0x100 + SSL_AD_MISSING_EXTENSION; + qc->error = NGX_QUIC_ERR_CRYPTO(SSL_AD_MISSING_EXTENSION); qc->error_reason = "missing transport parameters"; ngx_log_error(NGX_LOG_INFO, c->log, 0, @@ -552,7 +552,9 @@ ngx_quic_send_alert(ngx_ssl_conn_t *ssl_ return 1; } - if (ngx_quic_send_cc(c, level, 0x100 + alert, 0, "TLS alert") != NGX_OK) { + if (ngx_quic_send_cc(c, level, NGX_QUIC_ERR_CRYPTO(alert), 0, "TLS alert") + != NGX_OK) + { return 0; } diff --git a/src/event/ngx_event_quic_transport.c b/src/event/ngx_event_quic_transport.c --- a/src/event/ngx_event_quic_transport.c +++ b/src/event/ngx_event_quic_transport.c @@ -104,8 +104,6 @@ static char *ngx_quic_errors[] = { "APPLICATION_ERROR", "CRYPTO_BUFFER_EXCEEDED", "KEY_UPDATE_ERROR", - "unknown error 0xF", - "CRYPTO_ERROR", }; @@ -218,6 +216,9 @@ ngx_quic_build_int(u_char **pos, uint64_ u_char * ngx_quic_error_text(uint64_t error_code) { + if (error_code >= NGX_QUIC_ERR_CRYPTO_ERROR) { + return (u_char *) "handshake error"; + } if (error_code >= NGX_QUIC_ERR_LAST) { return (u_char *) "unknown error"; diff --git a/src/event/ngx_event_quic_transport.h b/src/event/ngx_event_quic_transport.h --- a/src/event/ngx_event_quic_transport.h +++ b/src/event/ngx_event_quic_transport.h @@ -75,6 +75,7 @@ #define NGX_QUIC_FT_HANDSHAKE_DONE 0x1E /* 22.4. QUIC Transport Error Codes Registry */ +/* Keep in sync with ngx_quic_errors[] */ #define NGX_QUIC_ERR_NO_ERROR 0x00 #define NGX_QUIC_ERR_INTERNAL_ERROR 0x01 #define NGX_QUIC_ERR_CONNECTION_REFUSED 0x02 @@ -90,10 +91,12 @@ #define NGX_QUIC_ERR_APPLICATION_ERROR 0x0C #define NGX_QUIC_ERR_CRYPTO_BUFFER_EXCEEDED 0x0D #define NGX_QUIC_ERR_KEY_UPDATE_ERROR 0x0E -/* 0xF is not defined */ -#define NGX_QUIC_ERR_CRYPTO_ERROR 0x10 -#define NGX_QUIC_ERR_LAST NGX_QUIC_ERR_CRYPTO_ERROR +#define NGX_QUIC_ERR_LAST 0x0F +#define NGX_QUIC_ERR_CRYPTO_ERROR 0x100 + +#define NGX_QUIC_ERR_CRYPTO(e) (NGX_QUIC_ERR_CRYPTO_ERROR + (e)) + /* Transport parameters */ #define NGX_QUIC_TP_ORIGINAL_DCID 0x00