Mercurial > hg > nginx
diff src/event/quic/ngx_event_quic.c @ 9152:2880f60a80c3
QUIC: posted generating TLS Key Update next keys.
Since at least f9fbeb4ee0de and certainly after 924882f42dea, which
TLS Key Update support predates, queued data output is deferred to a
posted push handler. To address timing signals after these changes,
generating next keys is now posted to run after the push handler.
author | Sergey Kandaurov <pluknet@nginx.com> |
---|---|
date | Fri, 25 Aug 2023 13:51:38 +0400 |
parents | 58afcd72446f |
children | 8f7e6d8c061e |
line wrap: on
line diff
--- a/src/event/quic/ngx_event_quic.c Fri Aug 25 16:39:14 2023 +0400 +++ b/src/event/quic/ngx_event_quic.c Fri Aug 25 13:51:38 2023 +0400 @@ -283,6 +283,10 @@ qc->path_validation.data = c; qc->path_validation.handler = ngx_quic_path_handler; + qc->key_update.log = c->log; + qc->key_update.data = c; + qc->key_update.handler = ngx_quic_keys_update; + qc->conf = conf; if (ngx_quic_init_transport_params(&qc->tp, conf) != NGX_OK) { @@ -562,6 +566,10 @@ ngx_delete_posted_event(&qc->push); } + if (qc->key_update.posted) { + ngx_delete_posted_event(&qc->key_update); + } + if (qc->close.timer_set) { return; } @@ -1055,7 +1063,9 @@ return rc; } - return ngx_quic_keys_update(c, qc->keys); + ngx_post_event(&qc->key_update, &ngx_posted_events); + + return NGX_OK; }