comparison src/stream/ngx_stream_write_filter_module.c @ 9069:9ea62b6250f2 quic

Stream: allow waiting on a blocked QUIC stream (ticket #2479). Previously, waiting on a shared connection was not allowed, because the only type of such connection was plain UDP. However, QUIC stream connections are also shared since they share socket descriptor with the listen connection. Meanwhile, it's perfectly normal to wait on such connections. The issue manifested itself with stream write errors when the amount of data exceeded stream buffer size or flow control. Now no error is triggered and Stream write module is allowed to wait for buffer space to become available.
author Roman Arutyunyan <arut@nginx.com>
date Thu, 06 Apr 2023 15:39:48 +0400
parents 32b0ba4855a6
children
comparison
equal deleted inserted replaced
9068:6c732b87ee10 9069:9ea62b6250f2
275 } 275 }
276 276
277 *out = chain; 277 *out = chain;
278 278
279 if (chain) { 279 if (chain) {
280 if (c->shared) { 280 if (c->shared
281 #if (NGX_STREAM_QUIC)
282 && c->quic == NULL
283 #endif
284 )
285 {
281 ngx_log_error(NGX_LOG_ALERT, c->log, 0, 286 ngx_log_error(NGX_LOG_ALERT, c->log, 0,
282 "shared connection is busy"); 287 "shared connection is busy");
283 return NGX_ERROR; 288 return NGX_ERROR;
284 } 289 }
285 290