comparison src/http/ngx_http_write_filter_module.c @ 8873:94daa42ff5ce quic

Added r->response_sent flag. The flag indicates that the entire response was sent to the socket up to the last_buf flag. The flag is only usable for protocol implementations that call ngx_http_write_filter() from header filter, such as HTTP/1.x and HTTP/3.
author Roman Arutyunyan <arut@nginx.com>
date Thu, 30 Sep 2021 17:14:42 +0300
parents c19ca381b2e6
children 61d0fa67b55e
comparison
equal deleted inserted replaced
8872:2706d27d2c76 8873:94daa42ff5ce
237 } 237 }
238 238
239 r->out = NULL; 239 r->out = NULL;
240 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED; 240 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
241 241
242 if (last) {
243 r->response_sent = 1;
244 }
245
242 return NGX_OK; 246 return NGX_OK;
243 } 247 }
244 248
245 ngx_log_error(NGX_LOG_ALERT, c->log, 0, 249 ngx_log_error(NGX_LOG_ALERT, c->log, 0,
246 "the http output chain is empty"); 250 "the http output chain is empty");
348 return NGX_AGAIN; 352 return NGX_AGAIN;
349 } 353 }
350 354
351 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED; 355 c->buffered &= ~NGX_HTTP_WRITE_BUFFERED;
352 356
357 if (last) {
358 r->response_sent = 1;
359 }
360
353 if ((c->buffered & NGX_LOWLEVEL_BUFFERED) && r->postponed == NULL) { 361 if ((c->buffered & NGX_LOWLEVEL_BUFFERED) && r->postponed == NULL) {
354 return NGX_AGAIN; 362 return NGX_AGAIN;
355 } 363 }
356 364
357 return NGX_OK; 365 return NGX_OK;