summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/event/ngx_event_quic.c28
-rw-r--r--src/event/ngx_event_quic_transport.h2
2 files changed, 30 insertions, 0 deletions
diff --git a/src/event/ngx_event_quic.c b/src/event/ngx_event_quic.c
index 71257d377..e1109ace1 100644
--- a/src/event/ngx_event_quic.c
+++ b/src/event/ngx_event_quic.c
@@ -46,6 +46,11 @@
#define NGX_QUIC_MIN_SR_PACKET 43 /* 5 random + 16 srt + 22 padding */
#define NGX_QUIC_MAX_SR_PACKET 1200
+#define ngx_quic_level_name(lvl) \
+ (lvl == ssl_encryption_application) ? "application" \
+ : (lvl == ssl_encryption_initial) ? "initial" \
+ : (lvl == ssl_encryption_handshake) ? "handshake" : "early_data"
+
typedef struct {
ngx_rbtree_t tree;
@@ -1625,6 +1630,25 @@ ngx_quic_input(ngx_connection_t *c, ngx_buf_t *b, ngx_quic_conf_t *conf)
rc = ngx_quic_process_packet(c, conf, &pkt);
+#if (NGX_DEBUG)
+ if (pkt.parsed) {
+ ngx_quic_connection_t *qc;
+
+ qc = c->quic;
+
+ ngx_log_debug8(NGX_LOG_DEBUG_EVENT, c->log, 0,
+ "quic pkt done %s decr:%d pn:%L pe:%ui rc:%i"
+ " closing:%d err:%d %s",
+ ngx_quic_level_name(pkt.level), pkt.decrypted,
+ pkt.pn, pkt.error, rc, (qc && qc->closing) ? 1 : 0,
+ qc ? qc->error : 0,
+ (qc && qc->error_reason) ? qc->error_reason : "");
+ } else {
+ ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
+ "quic pkt done parse failed rc:%i", rc);
+ }
+#endif
+
if (rc == NGX_ERROR) {
return NGX_ERROR;
}
@@ -1687,6 +1711,8 @@ ngx_quic_process_packet(ngx_connection_t *c, ngx_quic_conf_t *conf,
return rc;
}
+ pkt->parsed = 1;
+
c->log->action = "processing quic packet";
qc = c->quic;
@@ -1838,6 +1864,8 @@ ngx_quic_process_packet(ngx_connection_t *c, ngx_quic_conf_t *conf,
return rc;
}
+ pkt->decrypted = 1;
+
if (c->ssl == NULL) {
if (ngx_quic_init_connection(c) != NGX_OK) {
return NGX_ERROR;
diff --git a/src/event/ngx_event_quic_transport.h b/src/event/ngx_event_quic_transport.h
index a62f4d586..54f903473 100644
--- a/src/event/ngx_event_quic_transport.h
+++ b/src/event/ngx_event_quic_transport.h
@@ -311,6 +311,8 @@ typedef struct {
unsigned need_ack:1;
unsigned key_phase:1;
unsigned key_update:1;
+ unsigned parsed:1;
+ unsigned decrypted:1;
} ngx_quic_header_t;