annotate src/core/ngx_list.c @ 8998:308ac307b3e6 quic

QUIC: improved debug logging. - wording in log->action is adjusted to match function names. - connection close steps are made obvious and start with "quic close" prefix: *1 quic close initiated rc:-4 *1 quic close silent drain:0 timedout:1 *1 quic close resumed rc:-1 *1 quic close resumed rc:-1 *1 quic close resumed rc:-4 *1 quic close completed this makes it easy to understand if particular "close" record is an initial cause or lasting process, or the final one. - cases of close without quic connection now logged as "packet rejected": *14 quic run *14 quic packet rx long flags:ec version:1 *14 quic packet rx hs len:61 *14 quic packet rx dcid len:20 00000000000002c32f60e4aa2b90a64a39dc4228 *14 quic packet rx scid len:8 81190308612cd019 *14 quic expected initial, got handshake *14 quic packet done rc:-1 level:hs decr:0 pn:0 perr:0 *14 quic packet rejected rc:-1, cleanup connection *14 reusable connection: 0 this makes it easy to spot early packet rejection and avoid confuse with quic connection closing (which in fact was not even created). - packet processing summary now uses same prefix "quic packet done rc:" - added debug to places where packet was rejected without any reason logged
author Vladimir Homutov <vl@nginx.com>
date Tue, 01 Feb 2022 15:43:56 +0300
parents a82f305487c2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 416
diff changeset
1
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 416
diff changeset
2 /*
444
42d11f017717 nginx-0.1.0-2004-09-29-20:00:49 import; remove years from copyright
Igor Sysoev <igor@sysoev.ru>
parents: 441
diff changeset
3 * Copyright (C) Igor Sysoev
4412
d620f497c50f Copyright updated.
Maxim Konovalov <maxim@nginx.com>
parents: 766
diff changeset
4 * Copyright (C) Nginx, Inc.
441
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 416
diff changeset
5 */
da8c5707af39 nginx-0.1.0-2004-09-28-12:34:51 import; set copyright and remove unused files
Igor Sysoev <igor@sysoev.ru>
parents: 416
diff changeset
6
414
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
7
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
8 #include <ngx_config.h>
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
9 #include <ngx_core.h>
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
10
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
11
766
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
12 ngx_list_t *
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
13 ngx_list_create(ngx_pool_t *pool, ngx_uint_t n, size_t size)
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
14 {
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
15 ngx_list_t *list;
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
16
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
17 list = ngx_palloc(pool, sizeof(ngx_list_t));
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
18 if (list == NULL) {
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
19 return NULL;
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
20 }
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
21
5253
a82f305487c2 Simplified ngx_list_create().
Ruslan Ermilov <ru@nginx.com>
parents: 4412
diff changeset
22 if (ngx_list_init(list, pool, n, size) != NGX_OK) {
766
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
23 return NULL;
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
24 }
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
25
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
26 return list;
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
27 }
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
28
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
29
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
30 void *
791ea37bc944 ngx_list_create()
Igor Sysoev <igor@sysoev.ru>
parents: 501
diff changeset
31 ngx_list_push(ngx_list_t *l)
414
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
32 {
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
33 void *elt;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
34 ngx_list_part_t *last;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
35
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
36 last = l->last;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
37
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
38 if (last->nelts == l->nalloc) {
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
39
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
40 /* the last part is full, allocate a new list part */
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
41
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
42 last = ngx_palloc(l->pool, sizeof(ngx_list_part_t));
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
43 if (last == NULL) {
414
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
44 return NULL;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
45 }
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
46
501
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
47 last->elts = ngx_palloc(l->pool, l->nalloc * l->size);
d4ea69372b94 nginx-0.1.25-RELEASE import
Igor Sysoev <igor@sysoev.ru>
parents: 444
diff changeset
48 if (last->elts == NULL) {
414
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
49 return NULL;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
50 }
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
51
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
52 last->nelts = 0;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
53 last->next = NULL;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
54
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
55 l->last->next = last;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
56 l->last = last;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
57 }
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
58
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
59 elt = (char *) last->elts + l->size * last->nelts;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
60 last->nelts++;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
61
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
62 return elt;
388a842cbbe1 nginx-0.0.10-2004-09-03-19:50:30 import
Igor Sysoev <igor@sysoev.ru>
parents:
diff changeset
63 }