comparison src/event/ngx_event_quic.c @ 8471:9ed4c12ec948 quic

QUIC: caching c->quic in the ngx_quic_handle_ack_frame() function. To minimize difference with the following changes.
author Vladimir Homutov <vl@nginx.com>
date Mon, 13 Jul 2020 10:07:20 +0300
parents 0d1ad81dd65c
children 3b15732ac03f
comparison
equal deleted inserted replaced
8470:0d1ad81dd65c 8471:9ed4c12ec948
2246 2246
2247 static ngx_int_t 2247 static ngx_int_t
2248 ngx_quic_handle_ack_frame(ngx_connection_t *c, ngx_quic_header_t *pkt, 2248 ngx_quic_handle_ack_frame(ngx_connection_t *c, ngx_quic_header_t *pkt,
2249 ngx_quic_ack_frame_t *ack) 2249 ngx_quic_ack_frame_t *ack)
2250 { 2250 {
2251 ssize_t n; 2251 ssize_t n;
2252 u_char *pos, *end; 2252 u_char *pos, *end;
2253 uint64_t gap, range; 2253 uint64_t gap, range;
2254 ngx_msec_t send_time; 2254 ngx_msec_t send_time;
2255 ngx_uint_t i, min, max; 2255 ngx_uint_t i, min, max;
2256 ngx_quic_send_ctx_t *ctx; 2256 ngx_quic_send_ctx_t *ctx;
2257 2257 ngx_quic_connection_t *qc;
2258 ctx = ngx_quic_get_send_ctx(c->quic, pkt->level); 2258
2259 qc = c->quic;
2260
2261 ctx = ngx_quic_get_send_ctx(qc, pkt->level);
2259 2262
2260 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0, 2263 ngx_log_debug1(NGX_LOG_DEBUG_EVENT, c->log, 0,
2261 "quic ngx_quic_handle_ack_frame level %d", pkt->level); 2264 "quic ngx_quic_handle_ack_frame level %d", pkt->level);
2262 2265
2263 /* 2266 /*
2265 * generate a connection error of type FRAME_ENCODING_ERROR. 2268 * generate a connection error of type FRAME_ENCODING_ERROR.
2266 * (19.3.1) 2269 * (19.3.1)
2267 */ 2270 */
2268 2271
2269 if (ack->first_range > ack->largest) { 2272 if (ack->first_range > ack->largest) {
2270 c->quic->error = NGX_QUIC_ERR_FRAME_ENCODING_ERROR; 2273 qc->error = NGX_QUIC_ERR_FRAME_ENCODING_ERROR;
2271 ngx_log_error(NGX_LOG_INFO, c->log, 0, 2274 ngx_log_error(NGX_LOG_INFO, c->log, 0,
2272 "quic invalid first range in ack frame"); 2275 "quic invalid first range in ack frame");
2273 return NGX_ERROR; 2276 return NGX_ERROR;
2274 } 2277 }
2275 2278
2311 return NGX_ERROR; 2314 return NGX_ERROR;
2312 } 2315 }
2313 pos += n; 2316 pos += n;
2314 2317
2315 if (gap >= min) { 2318 if (gap >= min) {
2316 c->quic->error = NGX_QUIC_ERR_FRAME_ENCODING_ERROR; 2319 qc->error = NGX_QUIC_ERR_FRAME_ENCODING_ERROR;
2317 ngx_log_error(NGX_LOG_INFO, c->log, 0, 2320 ngx_log_error(NGX_LOG_INFO, c->log, 0,
2318 "quic invalid range %ui in ack frame", i); 2321 "quic invalid range %ui in ack frame", i);
2319 return NGX_ERROR; 2322 return NGX_ERROR;
2320 } 2323 }
2321 2324
2322 max = min - 1 - gap; 2325 max = min - 1 - gap;
2323 2326
2324 if (range > max + 1) { 2327 if (range > max + 1) {
2325 c->quic->error = NGX_QUIC_ERR_FRAME_ENCODING_ERROR; 2328 qc->error = NGX_QUIC_ERR_FRAME_ENCODING_ERROR;
2326 ngx_log_error(NGX_LOG_INFO, c->log, 0, 2329 ngx_log_error(NGX_LOG_INFO, c->log, 0,
2327 "quic invalid range %ui in ack frame", i); 2330 "quic invalid range %ui in ack frame", i);
2328 return NGX_ERROR; 2331 return NGX_ERROR;
2329 } 2332 }
2330 2333