Skip to content

Commit 490a311

Browse files
vgramermjuraga
authored andcommitted
MINOR: server: add experimental ktls parameter
Signed-off-by: Vincent Gramer <vgramer@haproxy.com>
1 parent d1d1b97 commit 490a311

22 files changed

Lines changed: 234 additions & 14 deletions

config-parser/params/server-options.go

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -157,6 +157,36 @@ func (b *ServerOptionIDValue) String() string {
157157
return fmt.Sprintf("%s(%s) %s", b.Name, b.ID, b.Value)
158158
}
159159

160+
type ServerOptionOnOff struct {
161+
Name string
162+
Value string
163+
}
164+
165+
func (s *ServerOptionOnOff) Parse(options []string, currentIndex int) (int, error) {
166+
if currentIndex+1 < len(options) {
167+
if options[currentIndex] == s.Name {
168+
s.Value = options[currentIndex+1]
169+
if !s.Valid() {
170+
return 0, &NotAllowedValuesError{Have: s.Value, Want: []string{"on", "off"}}
171+
}
172+
return 2, nil
173+
}
174+
return 0, &NotFoundError{Have: options[currentIndex], Want: s.Name}
175+
}
176+
return 0, &NotEnoughParamsError{}
177+
}
178+
179+
func (s *ServerOptionOnOff) Valid() bool {
180+
return s.Value == "on" || s.Value == "off"
181+
}
182+
183+
func (s *ServerOptionOnOff) String() string {
184+
if s.Name == "" || s.Value == "" {
185+
return ""
186+
}
187+
return s.Name + " " + s.Value
188+
}
189+
160190
var serverOptionFactoryMethods = map[string]func() ServerOption{ //nolint:gochecknoglobals
161191
"agent-check": func() ServerOption { return &ServerOptionWord{Name: "agent-check"} },
162192
"no-agent-check": func() ServerOption { return &ServerOptionWord{Name: "no-agent-check"} },
@@ -281,6 +311,7 @@ var serverOptionFactoryMethods = map[string]func() ServerOption{ //nolint:gochec
281311
"guid": func() ServerOption { return &ServerOptionValue{Name: "guid"} },
282312
"pool-conn-name": func() ServerOption { return &ServerOptionValue{Name: "pool-conn-name"} },
283313
"hash-key": func() ServerOption { return &ServerOptionValue{Name: "hash-key"} },
314+
"ktls": func() ServerOption { return &ServerOptionOnOff{Name: "ktls"} },
284315
}
285316

286317
var serverParamOptionFactoryMethods = map[string]func() ServerOption{ //nolint:gochecknoglobals

config-parser/tests/configs/haproxy_generated.cfg.go

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/default-server_generated_test.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/integration/backend_data_test.go

Lines changed: 16 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/integration/backend_test.go

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/integration/defaults_data_test.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/integration/defaults_test.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/integration/peers_data_test.go

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/integration/peers_test.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config-parser/tests/server_generated_test.go

Lines changed: 12 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)