mirror of
https://github.com/nginx/nginx.git
synced 2024-12-11 09:49:02 +08:00
HTTP/3: clean up table from session cleanup handler.
Previously table had a separate cleanup handler.
This commit is contained in:
parent
9e05c357cc
commit
541feb5bd9
@ -79,6 +79,8 @@ ngx_http_v3_cleanup_session(void *data)
|
||||
{
|
||||
ngx_http_v3_session_t *h3c = data;
|
||||
|
||||
ngx_http_v3_cleanup_table(h3c);
|
||||
|
||||
if (h3c->keepalive.timer_set) {
|
||||
ngx_del_timer(&h3c->keepalive);
|
||||
}
|
||||
|
@ -14,7 +14,6 @@
|
||||
|
||||
|
||||
static ngx_int_t ngx_http_v3_evict(ngx_connection_t *c, size_t need);
|
||||
static void ngx_http_v3_cleanup_table(void *data);
|
||||
static void ngx_http_v3_unblock(void *data);
|
||||
static ngx_int_t ngx_http_v3_new_header(ngx_connection_t *c);
|
||||
|
||||
@ -240,8 +239,6 @@ ngx_int_t
|
||||
ngx_http_v3_set_capacity(ngx_connection_t *c, ngx_uint_t capacity)
|
||||
{
|
||||
ngx_uint_t max, prev_max;
|
||||
ngx_connection_t *pc;
|
||||
ngx_pool_cleanup_t *cln;
|
||||
ngx_http_v3_header_t **elts;
|
||||
ngx_http_v3_session_t *h3c;
|
||||
ngx_http_v3_srv_conf_t *h3scf;
|
||||
@ -276,18 +273,7 @@ ngx_http_v3_set_capacity(ngx_connection_t *c, ngx_uint_t capacity)
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
if (dt->elts == NULL) {
|
||||
pc = c->quic->parent;
|
||||
|
||||
cln = ngx_pool_cleanup_add(pc->pool, 0);
|
||||
if (cln == NULL) {
|
||||
return NGX_ERROR;
|
||||
}
|
||||
|
||||
cln->handler = ngx_http_v3_cleanup_table;
|
||||
cln->data = dt;
|
||||
|
||||
} else {
|
||||
if (dt->elts) {
|
||||
ngx_memcpy(elts, dt->elts, dt->nelts * sizeof(void *));
|
||||
ngx_free(dt->elts);
|
||||
}
|
||||
@ -301,12 +287,17 @@ ngx_http_v3_set_capacity(ngx_connection_t *c, ngx_uint_t capacity)
|
||||
}
|
||||
|
||||
|
||||
static void
|
||||
ngx_http_v3_cleanup_table(void *data)
|
||||
void
|
||||
ngx_http_v3_cleanup_table(ngx_http_v3_session_t *h3c)
|
||||
{
|
||||
ngx_http_v3_dynamic_table_t *dt = data;
|
||||
ngx_uint_t n;
|
||||
ngx_http_v3_dynamic_table_t *dt;
|
||||
|
||||
ngx_uint_t n;
|
||||
dt = &h3c->table;
|
||||
|
||||
if (dt->elts == NULL) {
|
||||
return;
|
||||
}
|
||||
|
||||
for (n = 0; n < dt->nelts; n++) {
|
||||
ngx_free(dt->elts[n]);
|
||||
|
@ -29,6 +29,7 @@ typedef struct {
|
||||
} ngx_http_v3_dynamic_table_t;
|
||||
|
||||
|
||||
void ngx_http_v3_cleanup_table(ngx_http_v3_session_t *h3c);
|
||||
ngx_int_t ngx_http_v3_ref_insert(ngx_connection_t *c, ngx_uint_t dynamic,
|
||||
ngx_uint_t index, ngx_str_t *value);
|
||||
ngx_int_t ngx_http_v3_insert(ngx_connection_t *c, ngx_str_t *name,
|
||||
|
Loading…
Reference in New Issue
Block a user