Skip to content

Commit 5f46130

Browse files
authored
Merge pull request #88 from dakshinai/nlb-4310-support-ngx_mgmt_module
Support ngx_mgmt_module
2 parents 5a931e2 + 0576717 commit 5f46130

File tree

2 files changed

+269
-0
lines changed

2 files changed

+269
-0
lines changed

analyze.go

+39
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ const (
3838

3939
// bit masks for different directive locations.
4040
ngxDirectConf = 0x00010000 // main file (not used)
41+
ngxMgmtMainConf = 0x00020000 // mgmt // unique bitmask that may not match NGINX source
4142
ngxMainConf = 0x00040000 // main context
4243
ngxEventConf = 0x00080000 // events
4344
ngxMailMainConf = 0x00100000 // mail
@@ -55,6 +56,7 @@ const (
5556
)
5657

5758
// helpful directive location alias describing "any" context
59+
// doesn't include ngxHTTPSifConf, ngxHTTPLifConf, ngxHTTPLmtConf, or ngxMgmtMainConf.
5860
const ngxAnyConf = ngxMainConf | ngxEventConf | ngxMailMainConf | ngxMailSrvConf |
5961
ngxStreamMainConf | ngxStreamSrvConf | ngxStreamUpsConf |
6062
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPUpsConf |
@@ -78,6 +80,7 @@ var contexts = map[string]uint{
7880
blockCtx{"http", "server", "if"}.key(): ngxHTTPSifConf,
7981
blockCtx{"http", "location", "if"}.key(): ngxHTTPLifConf,
8082
blockCtx{"http", "location", "limit_except"}.key(): ngxHTTPLmtConf,
83+
blockCtx{"mgmt"}.key(): ngxMgmtMainConf,
8184
}
8285

8386
func enterBlockCtx(stmt *Directive, ctx blockCtx) blockCtx {
@@ -339,6 +342,9 @@ var directives = map[string][]uint{
339342
"client_max_body_size": {
340343
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
341344
},
345+
"connect_timeout": {
346+
ngxMgmtMainConf | ngxConfTake1,
347+
},
342348
"connection_pool_size": {
343349
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
344350
},
@@ -972,6 +978,9 @@ var directives = map[string][]uint{
972978
"merge_slashes": {
973979
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfFlag,
974980
},
981+
"mgmt": {
982+
ngxMainConf | ngxConfBlock | ngxConfNoArgs,
983+
},
975984
"min_delete_depth": {
976985
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
977986
},
@@ -1372,6 +1381,9 @@ var directives = map[string][]uint{
13721381
"read_ahead": {
13731382
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
13741383
},
1384+
"read_timeout": {
1385+
ngxMgmtMainConf | ngxConfTake1,
1386+
},
13751387
"real_ip_header": {
13761388
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
13771389
},
@@ -1398,11 +1410,13 @@ var directives = map[string][]uint{
13981410
ngxMailMainConf | ngxMailSrvConf | ngxConf1More,
13991411
ngxStreamMainConf | ngxStreamUpsConf | ngxStreamSrvConf | ngxConf1More,
14001412
ngxHTTPUpsConf | ngxConf1More,
1413+
ngxMgmtMainConf | ngxConf1More,
14011414
},
14021415
"resolver_timeout": {
14031416
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPUpsConf | ngxConfTake1,
14041417
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
14051418
ngxStreamMainConf | ngxStreamUpsConf | ngxStreamSrvConf | ngxConfTake1,
1419+
ngxMgmtMainConf | ngxConfTake1,
14061420
},
14071421
"return": {
14081422
ngxHTTPSrvConf | ngxHTTPSifConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfTake12,
@@ -1566,6 +1580,7 @@ var directives = map[string][]uint{
15661580
},
15671581
"send_timeout": {
15681582
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
1583+
ngxMgmtMainConf | ngxConfTake1,
15691584
},
15701585
"sendfile": {
15711586
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxHTTPLifConf | ngxConfFlag,
@@ -1654,6 +1669,7 @@ var directives = map[string][]uint{
16541669
"ssl": {
16551670
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfFlag,
16561671
ngxMailMainConf | ngxMailSrvConf | ngxConfFlag,
1672+
ngxMgmtMainConf | ngxConfFlag,
16571673
},
16581674
"ssl_alpn": {
16591675
ngxStreamMainConf | ngxStreamSrvConf | ngxConf1More,
@@ -1665,16 +1681,19 @@ var directives = map[string][]uint{
16651681
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
16661682
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
16671683
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
1684+
ngxMgmtMainConf | ngxConfTake1,
16681685
},
16691686
"ssl_certificate_key": {
16701687
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
16711688
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
16721689
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
1690+
ngxMgmtMainConf | ngxConfTake1,
16731691
},
16741692
"ssl_ciphers": {
16751693
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
16761694
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
16771695
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
1696+
ngxMgmtMainConf | ngxConfTake1,
16781697
},
16791698
"ssl_client_certificate": {
16801699
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
@@ -1690,6 +1709,7 @@ var directives = map[string][]uint{
16901709
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
16911710
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
16921711
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
1712+
ngxMgmtMainConf | ngxConfTake1,
16931713
},
16941714
"ssl_dhparam": {
16951715
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
@@ -1710,6 +1730,9 @@ var directives = map[string][]uint{
17101730
"ssl_handshake_timeout": {
17111731
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
17121732
},
1733+
"ssl_name": {
1734+
ngxMgmtMainConf | ngxConfTake1,
1735+
},
17131736
"ssl_ocsp": {
17141737
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
17151738
},
@@ -1723,6 +1746,7 @@ var directives = map[string][]uint{
17231746
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
17241747
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
17251748
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
1749+
ngxMgmtMainConf | ngxConfTake1,
17261750
},
17271751
"ssl_prefer_server_ciphers": {
17281752
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfFlag,
@@ -1736,10 +1760,14 @@ var directives = map[string][]uint{
17361760
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConf1More,
17371761
ngxMailMainConf | ngxMailSrvConf | ngxConf1More,
17381762
ngxStreamMainConf | ngxStreamSrvConf | ngxConf1More,
1763+
ngxMgmtMainConf | ngxConf1More,
17391764
},
17401765
"ssl_reject_handshake": {
17411766
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfFlag,
17421767
},
1768+
"ssl_server_name": {
1769+
ngxMgmtMainConf | ngxConfFlag,
1770+
},
17431771
"ssl_session_cache": {
17441772
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake12,
17451773
ngxMailMainConf | ngxMailSrvConf | ngxConfTake12,
@@ -1776,6 +1804,10 @@ var directives = map[string][]uint{
17761804
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
17771805
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
17781806
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
1807+
ngxMgmtMainConf | ngxConfTake1,
1808+
},
1809+
"ssl_verify": {
1810+
ngxMgmtMainConf | ngxConfFlag,
17791811
},
17801812
"ssl_verify_client": {
17811813
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
@@ -1786,6 +1818,7 @@ var directives = map[string][]uint{
17861818
ngxHTTPMainConf | ngxHTTPSrvConf | ngxConfTake1,
17871819
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
17881820
ngxStreamMainConf | ngxStreamSrvConf | ngxConfTake1,
1821+
ngxMgmtMainConf | ngxConfTake1,
17891822
},
17901823
"starttls": {
17911824
ngxMailMainConf | ngxMailSrvConf | ngxConfTake1,
@@ -1852,6 +1885,9 @@ var directives = map[string][]uint{
18521885
"upstream_conf": {
18531886
ngxHTTPLocConf | ngxConfNoArgs,
18541887
},
1888+
"usage_report": {
1889+
ngxMgmtMainConf | ngxConfNoArgs | ngxConfTake1 | ngxConfTake2,
1890+
},
18551891
"use": {
18561892
ngxEventConf | ngxConfTake1,
18571893
},
@@ -1885,6 +1921,9 @@ var directives = map[string][]uint{
18851921
"userid_service": {
18861922
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake1,
18871923
},
1924+
"uuid_file": {
1925+
ngxMgmtMainConf | ngxConfTake1,
1926+
},
18881927
"uwsgi_bind": {
18891928
ngxHTTPMainConf | ngxHTTPSrvConf | ngxHTTPLocConf | ngxConfTake12,
18901929
},

0 commit comments

Comments
 (0)