comparison src/event/quic/ngx_event_quic_ssl.c @ 8887:61b038fb59c6 quic

QUIC: speeding up processing 0-RTT. After fe919fd63b0b, processing QUIC streams was postponed until after handshake completion, which means that 0-RTT is effectively off. With ssl_ocsp enabled, it could be further delayed. This differs from how OCSP validation works with SSL_read_early_data(). With this change, processing QUIC streams is unlocked when obtaining 0-RTT secret.
author Sergey Kandaurov <pluknet@nginx.com>
date Tue, 26 Oct 2021 17:43:10 +0300
parents 66b4ff373dd9
children 4b2d259bdadd
comparison
equal deleted inserted replaced
8886:66b4ff373dd9 8887:61b038fb59c6
69 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, 69 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0,
70 "quic read secret len:%uz %*xs", secret_len, 70 "quic read secret len:%uz %*xs", secret_len,
71 secret_len, rsecret); 71 secret_len, rsecret);
72 #endif 72 #endif
73 73
74 return ngx_quic_keys_set_encryption_secret(c->pool, 0, qc->keys, level, 74 if (ngx_quic_keys_set_encryption_secret(c->pool, 0, qc->keys, level,
75 cipher, rsecret, secret_len); 75 cipher, rsecret, secret_len)
76 != 1)
77 {
78 return 0;
79 }
80
81 if (level == ssl_encryption_early_data) {
82 if (ngx_quic_init_streams(c) != NGX_OK) {
83 return 0;
84 }
85 }
86
87 return 1;
76 } 88 }
77 89
78 90
79 static int 91 static int
80 ngx_quic_set_write_secret(ngx_ssl_conn_t *ssl_conn, 92 ngx_quic_set_write_secret(ngx_ssl_conn_t *ssl_conn,
129 { 141 {
130 return 0; 142 return 0;
131 } 143 }
132 144
133 if (level == ssl_encryption_early_data) { 145 if (level == ssl_encryption_early_data) {
146 if (ngx_quic_init_streams(c) != NGX_OK) {
147 return 0;
148 }
149
134 return 1; 150 return 1;
135 } 151 }
136 152
137 #ifdef NGX_QUIC_DEBUG_CRYPTO 153 #ifdef NGX_QUIC_DEBUG_CRYPTO
138 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0, 154 ngx_log_debug3(NGX_LOG_DEBUG_EVENT, c->log, 0,