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,
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;
}
"APPLICATION_ERROR",
"CRYPTO_BUFFER_EXCEEDED",
"KEY_UPDATE_ERROR",
- "unknown error 0xF",
- "CRYPTO_ERROR",
};
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";
#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
#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