Latest update - 9113 (merged default - quic branch)
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
* Copyright (C) 2002-2021 Igor Sysoev
|
* Copyright (C) 2002-2021 Igor Sysoev
|
||||||
* Copyright (C) 2011-2022 Nginx, Inc.
|
* Copyright (C) 2011-2023 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
|
||||||
|
|||||||
@@ -75,6 +75,8 @@ win32:
|
|||||||
--with-http_slice_module \
|
--with-http_slice_module \
|
||||||
--with-mail \
|
--with-mail \
|
||||||
--with-stream \
|
--with-stream \
|
||||||
|
--with-stream_realip_module \
|
||||||
|
--with-stream_ssl_preread_module \
|
||||||
--with-openssl=$(OBJS)/lib/$(OPENSSL) \
|
--with-openssl=$(OBJS)/lib/$(OPENSSL) \
|
||||||
--with-openssl-opt="no-asm no-tests -D_WIN32_WINNT=0x0501" \
|
--with-openssl-opt="no-asm no-tests -D_WIN32_WINNT=0x0501" \
|
||||||
--with-http_ssl_module \
|
--with-http_ssl_module \
|
||||||
|
|||||||
@@ -732,14 +732,14 @@ ngx_regex_create_conf(ngx_cycle_t *cycle)
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
cln->handler = ngx_regex_cleanup;
|
|
||||||
cln->data = rcf;
|
|
||||||
|
|
||||||
rcf->studies = ngx_list_create(cycle->pool, 8, sizeof(ngx_regex_elt_t));
|
rcf->studies = ngx_list_create(cycle->pool, 8, sizeof(ngx_regex_elt_t));
|
||||||
if (rcf->studies == NULL) {
|
if (rcf->studies == NULL) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
cln->handler = ngx_regex_cleanup;
|
||||||
|
cln->data = rcf;
|
||||||
|
|
||||||
ngx_regex_studies = rcf->studies;
|
ngx_regex_studies = rcf->studies;
|
||||||
|
|
||||||
return rcf;
|
return rcf;
|
||||||
|
|||||||
@@ -844,7 +844,7 @@ ngx_quic_handle_packet(ngx_connection_t *c, ngx_quic_conf_t *conf,
|
|||||||
"quic stateless reset packet detected");
|
"quic stateless reset packet detected");
|
||||||
|
|
||||||
qc->draining = 1;
|
qc->draining = 1;
|
||||||
ngx_quic_close_connection(c, NGX_OK);
|
ngx_post_event(&qc->close, &ngx_posted_events);
|
||||||
|
|
||||||
return NGX_OK;
|
return NGX_OK;
|
||||||
}
|
}
|
||||||
@@ -1390,7 +1390,7 @@ ngx_quic_handle_frames(ngx_connection_t *c, ngx_quic_header_t *pkt)
|
|||||||
|
|
||||||
if (do_close) {
|
if (do_close) {
|
||||||
qc->draining = 1;
|
qc->draining = 1;
|
||||||
ngx_quic_close_connection(c, NGX_OK);
|
ngx_post_event(&qc->close, &ngx_posted_events);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (pkt->path != qc->path && nonprobing) {
|
if (pkt->path != qc->path && nonprobing) {
|
||||||
|
|||||||
@@ -806,6 +806,7 @@ void ngx_quic_lost_handler(ngx_event_t *ev)
|
|||||||
|
|
||||||
if (ngx_quic_detect_lost(c, NULL) != NGX_OK) {
|
if (ngx_quic_detect_lost(c, NULL) != NGX_OK) {
|
||||||
ngx_quic_close_connection(c, NGX_ERROR);
|
ngx_quic_close_connection(c, NGX_ERROR);
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ngx_quic_connstate_dbg(c);
|
ngx_quic_connstate_dbg(c);
|
||||||
|
|||||||
@@ -7,7 +7,8 @@
|
|||||||
#ifndef _NGX_EVENT_QUIC_OPENSSL_COMPAT_H_INCLUDED_
|
#ifndef _NGX_EVENT_QUIC_OPENSSL_COMPAT_H_INCLUDED_
|
||||||
#define _NGX_EVENT_QUIC_OPENSSL_COMPAT_H_INCLUDED_
|
#define _NGX_EVENT_QUIC_OPENSSL_COMPAT_H_INCLUDED_
|
||||||
|
|
||||||
#ifdef TLSEXT_TYPE_quic_transport_parameters
|
#if defined SSL_R_MISSING_QUIC_TRANSPORT_PARAMETERS_EXTENSION \
|
||||||
|
|| defined LIBRESSL_VERSION_NUMBER
|
||||||
#undef NGX_QUIC_OPENSSL_COMPAT
|
#undef NGX_QUIC_OPENSSL_COMPAT
|
||||||
#else
|
#else
|
||||||
|
|
||||||
|
|||||||
@@ -1084,7 +1084,8 @@ ngx_quic_stream_cleanup_handler(void *data)
|
|||||||
{
|
{
|
||||||
ngx_connection_t *c = data;
|
ngx_connection_t *c = data;
|
||||||
|
|
||||||
ngx_quic_stream_t *qs;
|
ngx_quic_stream_t *qs;
|
||||||
|
ngx_quic_connection_t *qc;
|
||||||
|
|
||||||
qs = c->quic;
|
qs = c->quic;
|
||||||
|
|
||||||
@@ -1092,16 +1093,23 @@ ngx_quic_stream_cleanup_handler(void *data)
|
|||||||
"quic stream id:0x%xL cleanup", qs->id);
|
"quic stream id:0x%xL cleanup", qs->id);
|
||||||
|
|
||||||
if (ngx_quic_shutdown_stream(c, NGX_RDWR_SHUTDOWN) != NGX_OK) {
|
if (ngx_quic_shutdown_stream(c, NGX_RDWR_SHUTDOWN) != NGX_OK) {
|
||||||
ngx_quic_close_connection(c, NGX_ERROR);
|
goto failed;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
qs->connection = NULL;
|
qs->connection = NULL;
|
||||||
|
|
||||||
if (ngx_quic_close_stream(qs) != NGX_OK) {
|
if (ngx_quic_close_stream(qs) != NGX_OK) {
|
||||||
ngx_quic_close_connection(c, NGX_ERROR);
|
goto failed;
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
failed:
|
||||||
|
|
||||||
|
qc = ngx_quic_get_connection(qs->parent);
|
||||||
|
qc->error = NGX_QUIC_ERR_INTERNAL_ERROR;
|
||||||
|
|
||||||
|
ngx_post_event(&qc->close, &ngx_posted_events);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -183,7 +183,7 @@ ngx_quic_recvmsg(ngx_event_t *ev)
|
|||||||
|
|
||||||
qsock = ngx_quic_get_socket(c);
|
qsock = ngx_quic_get_socket(c);
|
||||||
|
|
||||||
ngx_memcpy(&qsock->sockaddr.sockaddr, sockaddr, socklen);
|
ngx_memcpy(&qsock->sockaddr, sockaddr, socklen);
|
||||||
qsock->socklen = socklen;
|
qsock->socklen = socklen;
|
||||||
|
|
||||||
c->udp->buffer = &buf;
|
c->udp->buffer = &buf;
|
||||||
|
|||||||
@@ -828,7 +828,7 @@ ngx_http_variable_headers_internal(ngx_http_request_t *r,
|
|||||||
ngx_http_variable_value_t *v, uintptr_t data, u_char sep)
|
ngx_http_variable_value_t *v, uintptr_t data, u_char sep)
|
||||||
{
|
{
|
||||||
size_t len;
|
size_t len;
|
||||||
u_char *p;
|
u_char *p, *end;
|
||||||
ngx_table_elt_t *h, *th;
|
ngx_table_elt_t *h, *th;
|
||||||
|
|
||||||
h = *(ngx_table_elt_t **) ((char *) r + data);
|
h = *(ngx_table_elt_t **) ((char *) r + data);
|
||||||
@@ -870,6 +870,8 @@ ngx_http_variable_headers_internal(ngx_http_request_t *r,
|
|||||||
v->len = len;
|
v->len = len;
|
||||||
v->data = p;
|
v->data = p;
|
||||||
|
|
||||||
|
end = p + len;
|
||||||
|
|
||||||
for (th = h; th; th = th->next) {
|
for (th = h; th; th = th->next) {
|
||||||
|
|
||||||
if (th->hash == 0) {
|
if (th->hash == 0) {
|
||||||
@@ -878,7 +880,7 @@ ngx_http_variable_headers_internal(ngx_http_request_t *r,
|
|||||||
|
|
||||||
p = ngx_copy(p, th->value.data, th->value.len);
|
p = ngx_copy(p, th->value.data, th->value.len);
|
||||||
|
|
||||||
if (th->next == NULL) {
|
if (p == end) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user