Skip to content
This repository was archived by the owner on Sep 1, 2025. It is now read-only.

Commit b8de5ee

Browse files
snorwinoktalz
authored andcommitted
MINOR: listen: add parsers
Signed-off-by: Norwin Schnyder norwin.schnyder+github@gmail.com
1 parent 981dbb4 commit b8de5ee

2 files changed

Lines changed: 109 additions & 4 deletions

File tree

section-parsers.go

Lines changed: 106 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -426,7 +426,112 @@ func (p *configParser) getBackendParser() *Parsers {
426426
}
427427

428428
func (p *configParser) getListenParser() *Parsers {
429-
return p.createParsers(map[string]ParserInterface{}, []Section{})
429+
parser := map[string]ParserInterface{}
430+
sequence := []Section{}
431+
addParser(parser, &sequence, &parsers.Mode{})
432+
addParser(parser, &sequence, &parsers.HashType{})
433+
addParser(parser, &sequence, &parsers.Balance{})
434+
addParser(parser, &sequence, &parsers.MaxConn{})
435+
addParser(parser, &sequence, &simple.Number{Name: "backlog"})
436+
addParser(parser, &sequence, &parsers.Bind{})
437+
addParser(parser, &sequence, &parsers.ACL{})
438+
addParser(parser, &sequence, &parsers.ForcePersist{})
439+
addParser(parser, &sequence, &parsers.MonitorURI{})
440+
addParser(parser, &sequence, &parsers.MonitorFail{})
441+
addParser(parser, &sequence, &parsers.BindProcess{})
442+
addParser(parser, &sequence, &simple.Word{Name: "log-tag"})
443+
addParser(parser, &sequence, &simple.String{Name: "log-format"})
444+
addParser(parser, &sequence, &simple.String{Name: "log-format-sd"})
445+
addParser(parser, &sequence, &parsers.Log{})
446+
addParser(parser, &sequence, &simple.Option{Name: "httpclose"})
447+
addParser(parser, &sequence, &simple.Option{Name: "forceclose"})
448+
addParser(parser, &sequence, &simple.Option{Name: "http-buffer-request"})
449+
addParser(parser, &sequence, &simple.Option{Name: "http-server-close"})
450+
addParser(parser, &sequence, &simple.Option{Name: "http-keep-alive"})
451+
addParser(parser, &sequence, &simple.Option{Name: "http-pretend-keepalive"})
452+
addParser(parser, &sequence, &simple.Option{Name: "http-use-htx"})
453+
addParser(parser, &sequence, &simple.Option{Name: "http-no-delay"})
454+
addParser(parser, &sequence, &simple.Option{Name: "http-proxy"})
455+
addParser(parser, &sequence, &parsers.OptionForwardFor{})
456+
addParser(parser, &sequence, &simple.Option{Name: "ssl-hello-chk"})
457+
addParser(parser, &sequence, &parsers.OptionSmtpchk{})
458+
addParser(parser, &sequence, &simple.Option{Name: "ldap-check"})
459+
addParser(parser, &sequence, &parsers.OptionMysqlCheck{})
460+
addParser(parser, &sequence, &simple.Option{Name: "abortonclose"})
461+
addParser(parser, &sequence, &parsers.OptionPgsqlCheck{})
462+
addParser(parser, &sequence, &simple.Option{Name: "redis-check"})
463+
addParser(parser, &sequence, &parsers.OptionRedispatch{})
464+
addParser(parser, &sequence, &simple.Option{Name: "external-check"})
465+
addParser(parser, &sequence, &simple.Option{Name: "tcplog"})
466+
addParser(parser, &sequence, &simple.Option{Name: "dontlognull"})
467+
addParser(parser, &sequence, &simple.Option{Name: "contstats"})
468+
addParser(parser, &sequence, &simple.Option{Name: "log-separate-errors"})
469+
addParser(parser, &sequence, &simple.Option{Name: "tcpka"})
470+
addParser(parser, &sequence, &simple.Option{Name: "clitcpka"})
471+
addParser(parser, &sequence, &simple.Option{Name: "splice-auto"})
472+
addParser(parser, &sequence, &simple.Option{Name: "splice-request"})
473+
addParser(parser, &sequence, &simple.Option{Name: "splice-response"})
474+
addParser(parser, &sequence, &simple.Option{Name: "log-health-checks"})
475+
addParser(parser, &sequence, &simple.String{Name: "log-tag"})
476+
addParser(parser, &sequence, &simple.Option{Name: "tcpka"})
477+
addParser(parser, &sequence, &simple.Option{Name: "srvtcpka"})
478+
addParser(parser, &sequence, &simple.Option{Name: "allbackups"})
479+
addParser(parser, &sequence, &simple.Option{Name: "accept-invalid-http-request"})
480+
addParser(parser, &sequence, &simple.Option{Name: "h1-case-adjust-bogus-client"})
481+
addParser(parser, &sequence, &simple.Option{Name: "disable-h2-upgrade"})
482+
addParser(parser, &sequence, &simple.Option{Name: "logasap"})
483+
addParser(parser, &sequence, &parsers.OptionHTTPLog{})
484+
addParser(parser, &sequence, &simple.Option{Name: "accept-invalid-http-response"})
485+
addParser(parser, &sequence, &simple.Option{Name: "h1-case-adjust-bogus-server"})
486+
addParser(parser, &sequence, &simple.Option{Name: "tcp-check"})
487+
addParser(parser, &sequence, &tcp.Checks{})
488+
addParser(parser, &sequence, &parsers.OptionHttpchk{})
489+
if p.Options.UseV2HTTPCheck {
490+
addParser(parser, &sequence, &parsers.HTTPCheckV2{})
491+
} else {
492+
addParser(parser, &sequence, &http.Checks{Mode: "listen"})
493+
}
494+
addParser(parser, &sequence, &parsers.ExternalCheckPath{})
495+
addParser(parser, &sequence, &parsers.ExternalCheckCommand{})
496+
addParser(parser, &sequence, &simple.Timeout{Name: "http-request"})
497+
addParser(parser, &sequence, &simple.Timeout{Name: "client"})
498+
addParser(parser, &sequence, &simple.Timeout{Name: "client-fin"})
499+
addParser(parser, &sequence, &simple.Timeout{Name: "queue"})
500+
addParser(parser, &sequence, &simple.Timeout{Name: "http-keep-alive"})
501+
addParser(parser, &sequence, &simple.Timeout{Name: "check"})
502+
addParser(parser, &sequence, &simple.Timeout{Name: "tunnel"})
503+
addParser(parser, &sequence, &simple.Timeout{Name: "server"})
504+
addParser(parser, &sequence, &simple.Timeout{Name: "server-fin"})
505+
addParser(parser, &sequence, &simple.Timeout{Name: "connect"})
506+
addParser(parser, &sequence, &parsers.DefaultServer{})
507+
addParser(parser, &sequence, &parsers.Stick{})
508+
addParser(parser, &sequence, &filters.Filters{})
509+
addParser(parser, &sequence, &parsers.CompressionAlgo{})
510+
addParser(parser, &sequence, &parsers.CompressionType{})
511+
addParser(parser, &sequence, &parsers.CompressionOffload{})
512+
addParser(parser, &sequence, &tcp.Requests{})
513+
addParser(parser, &sequence, &stats.Stats{Mode: "listen"})
514+
addParser(parser, &sequence, &parsers.HTTPReuse{})
515+
addParser(parser, &sequence, &http.Requests{Mode: "listen"})
516+
addParser(parser, &sequence, &http.Redirect{})
517+
addParser(parser, &sequence, &parsers.Cookie{})
518+
addParser(parser, &sequence, &simple.Word{Name: "dynamic-cookie-key"})
519+
addParser(parser, &sequence, &parsers.UseServer{})
520+
addParser(parser, &sequence, &parsers.UniqueIDFormat{})
521+
addParser(parser, &sequence, &parsers.UniqueIDHeader{})
522+
addParser(parser, &sequence, &parsers.ErrorFile{})
523+
addParser(parser, &sequence, &parsers.ConfigSnippet{})
524+
addParser(parser, &sequence, &parsers.UseBackend{})
525+
addParser(parser, &sequence, &parsers.DefaultBackend{})
526+
addParser(parser, &sequence, &parsers.StickTable{})
527+
addParser(parser, &sequence, &parsers.ConfigSnippet{})
528+
addParser(parser, &sequence, &parsers.ErrorFile{})
529+
addParser(parser, &sequence, &parsers.Server{})
530+
addParser(parser, &sequence, &simple.Number{Name: "retries"})
531+
addParser(parser, &sequence, &tcp.Responses{})
532+
addParser(parser, &sequence, &http.Responses{Mode: "listen"})
533+
addParser(parser, &sequence, &parsers.DeclareCapture{})
534+
return p.createParsers(parser, sequence)
430535
}
431536

432537
func (p *configParser) getResolverParser() *Parsers {

tests/configs/haproxy.cfg.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -266,11 +266,11 @@ backend test
266266
option contstats
267267
268268
listen stats
269-
bind *:1024 process 1
270269
mode http
270+
bind *:1024 process 1
271+
no log
272+
option forceclose
271273
stats enable
272274
stats realm HAProxy\ Statistics
273275
stats uri /
274-
no log
275-
option forceclose
276276
`

0 commit comments

Comments
 (0)