mirror of
https://github.com/nginx/nginx.git
synced 2024-11-21 16:28:40 +00:00
Merged with the default branch.
This commit is contained in:
commit
a767450093
@ -232,9 +232,6 @@ ngx_feature_test="struct crypt_data cd;
|
|||||||
ngx_include="sys/vfs.h"; . auto/include
|
ngx_include="sys/vfs.h"; . auto/include
|
||||||
|
|
||||||
|
|
||||||
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
|
||||||
|
|
||||||
|
|
||||||
# BPF sockhash
|
# BPF sockhash
|
||||||
|
|
||||||
ngx_feature="BPF sockhash"
|
ngx_feature="BPF sockhash"
|
||||||
@ -293,3 +290,6 @@ ngx_feature_test="socklen_t optlen = sizeof(int);
|
|||||||
int val;
|
int val;
|
||||||
getsockopt(0, SOL_UDP, UDP_SEGMENT, &val, &optlen)"
|
getsockopt(0, SOL_UDP, UDP_SEGMENT, &val, &optlen)"
|
||||||
. auto/feature
|
. auto/feature
|
||||||
|
|
||||||
|
|
||||||
|
CC_AUX_FLAGS="$cc_aux_flags -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64"
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2002-2021 Igor Sysoev
|
* Copyright (C) 2002-2021 Igor Sysoev
|
||||||
* Copyright (C) 2011-2021 Nginx, Inc.
|
* Copyright (C) 2011-2022 Nginx, Inc.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
|
@ -9,8 +9,8 @@
|
|||||||
#define _NGINX_H_INCLUDED_
|
#define _NGINX_H_INCLUDED_
|
||||||
|
|
||||||
|
|
||||||
#define nginx_version 1021006
|
#define nginx_version 1021007
|
||||||
#define NGINX_VERSION "1.21.6"
|
#define NGINX_VERSION "1.21.7"
|
||||||
#define NGINX_VER "nginx/" NGINX_VERSION
|
#define NGINX_VER "nginx/" NGINX_VERSION
|
||||||
|
|
||||||
#ifdef NGX_BUILD
|
#ifdef NGX_BUILD
|
||||||
|
@ -189,6 +189,7 @@ struct ngx_connection_s {
|
|||||||
unsigned tcp_nopush:2; /* ngx_connection_tcp_nopush_e */
|
unsigned tcp_nopush:2; /* ngx_connection_tcp_nopush_e */
|
||||||
|
|
||||||
unsigned need_last_buf:1;
|
unsigned need_last_buf:1;
|
||||||
|
unsigned need_flush_buf:1;
|
||||||
|
|
||||||
#if (NGX_HAVE_SENDFILE_NODISKIO || NGX_COMPAT)
|
#if (NGX_HAVE_SENDFILE_NODISKIO || NGX_COMPAT)
|
||||||
unsigned busy_count:2;
|
unsigned busy_count:2;
|
||||||
|
@ -179,6 +179,8 @@ ngx_event_connect_peer(ngx_peer_connection_t *pc)
|
|||||||
c->recv = ngx_udp_recv;
|
c->recv = ngx_udp_recv;
|
||||||
c->send = ngx_send;
|
c->send = ngx_send;
|
||||||
c->send_chain = ngx_udp_send_chain;
|
c->send_chain = ngx_udp_send_chain;
|
||||||
|
|
||||||
|
c->need_flush_buf = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
c->log_error = pc->log_error;
|
c->log_error = pc->log_error;
|
||||||
|
@ -3392,6 +3392,12 @@ ngx_ssl_connection_error(ngx_connection_t *c, int sslerr, ngx_err_t err,
|
|||||||
#endif
|
#endif
|
||||||
|| n == SSL_R_WRONG_VERSION_NUMBER /* 267 */
|
|| n == SSL_R_WRONG_VERSION_NUMBER /* 267 */
|
||||||
|| n == SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC /* 281 */
|
|| n == SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC /* 281 */
|
||||||
|
#ifdef SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY
|
||||||
|
|| n == SSL_R_APPLICATION_DATA_AFTER_CLOSE_NOTIFY /* 291 */
|
||||||
|
#endif
|
||||||
|
#ifdef SSL_R_APPLICATION_DATA_ON_SHUTDOWN
|
||||||
|
|| n == SSL_R_APPLICATION_DATA_ON_SHUTDOWN /* 291 */
|
||||||
|
#endif
|
||||||
#ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
|
#ifdef SSL_R_RENEGOTIATE_EXT_TOO_LONG
|
||||||
|| n == SSL_R_RENEGOTIATE_EXT_TOO_LONG /* 335 */
|
|| n == SSL_R_RENEGOTIATE_EXT_TOO_LONG /* 335 */
|
||||||
|| n == SSL_R_RENEGOTIATION_ENCODING_ERR /* 336 */
|
|| n == SSL_R_RENEGOTIATION_ENCODING_ERR /* 336 */
|
||||||
|
@ -280,6 +280,8 @@ ngx_event_recvmsg(ngx_event_t *ev)
|
|||||||
c->send = ngx_udp_send;
|
c->send = ngx_udp_send;
|
||||||
c->send_chain = ngx_udp_send_chain;
|
c->send_chain = ngx_udp_send_chain;
|
||||||
|
|
||||||
|
c->need_flush_buf = 1;
|
||||||
|
|
||||||
c->log = log;
|
c->log = log;
|
||||||
c->pool->log = log;
|
c->pool->log = log;
|
||||||
c->listening = ls;
|
c->listening = ls;
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
|| NGX_HAVE_IP_PKTINFO \
|
|| NGX_HAVE_IP_PKTINFO \
|
||||||
|| (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)))
|
|| (NGX_HAVE_INET6 && NGX_HAVE_IPV6_RECVPKTINFO)))
|
||||||
#define NGX_HAVE_ADDRINFO_CMSG 1
|
#define NGX_HAVE_ADDRINFO_CMSG 1
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
@ -60,7 +61,6 @@ ngx_int_t ngx_get_srcaddr_cmsg(struct cmsghdr *cmsg,
|
|||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
void ngx_event_recvmsg(ngx_event_t *ev);
|
void ngx_event_recvmsg(ngx_event_t *ev);
|
||||||
ssize_t ngx_sendmsg(ngx_connection_t *c, struct msghdr *msg, int flags);
|
ssize_t ngx_sendmsg(ngx_connection_t *c, struct msghdr *msg, int flags);
|
||||||
void ngx_udp_rbtree_insert_value(ngx_rbtree_node_t *temp,
|
void ngx_udp_rbtree_insert_value(ngx_rbtree_node_t *temp,
|
||||||
|
@ -1756,6 +1756,11 @@ ngx_http_file_cache_forced_expire(ngx_http_file_cache_t *cache)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (fcn->deleting) {
|
||||||
|
wait = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
p = ngx_hex_dump(key, (u_char *) &fcn->node.key,
|
p = ngx_hex_dump(key, (u_char *) &fcn->node.key,
|
||||||
sizeof(ngx_rbtree_key_t));
|
sizeof(ngx_rbtree_key_t));
|
||||||
len = NGX_HTTP_CACHE_KEY_LEN - sizeof(ngx_rbtree_key_t);
|
len = NGX_HTTP_CACHE_KEY_LEN - sizeof(ngx_rbtree_key_t);
|
||||||
|
@ -227,7 +227,8 @@ ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in)
|
|||||||
|
|
||||||
if (size == 0
|
if (size == 0
|
||||||
&& !(c->buffered & NGX_LOWLEVEL_BUFFERED)
|
&& !(c->buffered & NGX_LOWLEVEL_BUFFERED)
|
||||||
&& !(last && c->need_last_buf))
|
&& !(last && c->need_last_buf)
|
||||||
|
&& !(flush && c->need_flush_buf))
|
||||||
{
|
{
|
||||||
if (last || flush || sync) {
|
if (last || flush || sync) {
|
||||||
for (cl = r->out; cl; /* void */) {
|
for (cl = r->out; cl; /* void */) {
|
||||||
|
@ -153,12 +153,12 @@ struct ngx_http_v2_connection_s {
|
|||||||
ngx_queue_t dependencies;
|
ngx_queue_t dependencies;
|
||||||
ngx_queue_t closed;
|
ngx_queue_t closed;
|
||||||
|
|
||||||
|
ngx_uint_t closed_nodes;
|
||||||
ngx_uint_t last_sid;
|
ngx_uint_t last_sid;
|
||||||
ngx_uint_t last_push;
|
ngx_uint_t last_push;
|
||||||
|
|
||||||
time_t lingering_time;
|
time_t lingering_time;
|
||||||
|
|
||||||
unsigned closed_nodes:8;
|
|
||||||
unsigned settings_ack:1;
|
unsigned settings_ack:1;
|
||||||
unsigned table_update:1;
|
unsigned table_update:1;
|
||||||
unsigned blocked:1;
|
unsigned blocked:1;
|
||||||
|
@ -665,6 +665,7 @@ ngx_http_v2_header_filter(ngx_http_request_t *r)
|
|||||||
|
|
||||||
fc->send_chain = ngx_http_v2_send_chain;
|
fc->send_chain = ngx_http_v2_send_chain;
|
||||||
fc->need_last_buf = 1;
|
fc->need_last_buf = 1;
|
||||||
|
fc->need_flush_buf = 1;
|
||||||
|
|
||||||
return ngx_http_v2_filter_send(fc, stream);
|
return ngx_http_v2_filter_send(fc, stream);
|
||||||
}
|
}
|
||||||
@ -1815,7 +1816,11 @@ ngx_http_v2_waiting_queue(ngx_http_v2_connection_t *h2c,
|
|||||||
static ngx_inline ngx_int_t
|
static ngx_inline ngx_int_t
|
||||||
ngx_http_v2_filter_send(ngx_connection_t *fc, ngx_http_v2_stream_t *stream)
|
ngx_http_v2_filter_send(ngx_connection_t *fc, ngx_http_v2_stream_t *stream)
|
||||||
{
|
{
|
||||||
if (stream->queued == 0) {
|
ngx_connection_t *c;
|
||||||
|
|
||||||
|
c = stream->connection->connection;
|
||||||
|
|
||||||
|
if (stream->queued == 0 && !c->buffered) {
|
||||||
fc->buffered &= ~NGX_HTTP_V2_BUFFERED;
|
fc->buffered &= ~NGX_HTTP_V2_BUFFERED;
|
||||||
return NGX_OK;
|
return NGX_OK;
|
||||||
}
|
}
|
||||||
|
@ -235,7 +235,7 @@ ngx_stream_write_filter(ngx_stream_session_t *s, ngx_chain_t *in,
|
|||||||
if (size == 0
|
if (size == 0
|
||||||
&& !(c->buffered & NGX_LOWLEVEL_BUFFERED)
|
&& !(c->buffered & NGX_LOWLEVEL_BUFFERED)
|
||||||
&& !(last && c->need_last_buf)
|
&& !(last && c->need_last_buf)
|
||||||
&& !(c->type == SOCK_DGRAM && flush))
|
&& !(flush && c->need_flush_buf))
|
||||||
{
|
{
|
||||||
if (last || flush || sync) {
|
if (last || flush || sync) {
|
||||||
for (cl = *out; cl; /* void */) {
|
for (cl = *out; cl; /* void */) {
|
||||||
|
Loading…
Reference in New Issue
Block a user