Skip to content

Commit ede87b8

Browse files
committed
MINOR: bind: add no-strict-sni and tls-tickets params
1 parent ccbc51e commit ede87b8

15 files changed

Lines changed: 235 additions & 11 deletions

File tree

.aspell.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,7 @@ allowed:
141141
- scrollbar
142142
- scss
143143
- searchselect
144+
- sni
144145
- spammy
145146
- ssl
146147
- sso

config-parser/params/bind-options.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ var bindOptionFactoryMethods = map[string]func() BindOption{ //nolint:gochecknog
248248
"no-alpn": func() BindOption { return &BindOptionWord{Name: "no-alpn"} },
249249
"no-ca-names": func() BindOption { return &BindOptionWord{Name: "no-ca-names"} },
250250
"no-sslv3": func() BindOption { return &BindOptionWord{Name: "no-sslv3"} },
251+
"tls-tickets": func() BindOption { return &BindOptionWord{Name: "tls-tickets"} },
251252
"no-tls-tickets": func() BindOption { return &BindOptionWord{Name: "no-tls-tickets"} },
252253
"no-tlsv10": func() BindOption { return &BindOptionWord{Name: "no-tlsv10"} },
253254
"no-tlsv11": func() BindOption { return &BindOptionWord{Name: "no-tlsv11"} },
@@ -256,6 +257,7 @@ var bindOptionFactoryMethods = map[string]func() BindOption{ //nolint:gochecknog
256257
"prefer-client-ciphers": func() BindOption { return &BindOptionWord{Name: "prefer-client-ciphers"} },
257258
"ssl": func() BindOption { return &BindOptionWord{Name: "ssl"} },
258259
"strict-sni": func() BindOption { return &BindOptionWord{Name: "strict-sni"} },
260+
"no-strict-sni": func() BindOption { return &BindOptionWord{Name: "no-strict-sni"} },
259261
"tfo": func() BindOption { return &BindOptionWord{Name: "tfo"} },
260262
"transparent": func() BindOption { return &BindOptionWord{Name: "transparent"} },
261263
"v4v6": func() BindOption { return &BindOptionWord{Name: "v4v6"} },

config-parser/tests/bind_generated_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/configs/haproxy_generated.cfg.go

Lines changed: 6 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/frontend_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/frontend_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/types/types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,8 @@ type ACL struct {
264264
//test:ok:bind :443 default-crt foobar.pem.rsa default-crt foobar.pem.ecdsa
265265
//test:ok:bind :443 idle-ping 10s
266266
//test:ok:bind :443 idle-ping 10
267+
//test:ok:bind :443 ssl tls-tickets
268+
//test:ok:bind :443 ssl no-strict-sni
267269
//test:fail:bind :443 idle-ping
268270
//test:fail:bind :443 user
269271
//test:fail:bind :443 user mode 600

configuration/bind.go

Lines changed: 20 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -279,10 +279,17 @@ func parseBindParams(bindOptions []params.BindOption) models.BindParams { //noli
279279
b.NoCaNames = true
280280
case "no-tls-tickets":
281281
b.NoTLSTickets = true
282+
b.TLSTickets = "disabled"
283+
case "tls-tickets":
284+
b.TLSTickets = "enabled"
282285
case "prefer-client-ciphers":
283286
b.PreferClientCiphers = true
284287
case "strict-sni":
285288
b.StrictSni = true
289+
b.ForceStrictSni = "enabled"
290+
case "no-strict-sni":
291+
b.NoStrictSni = true
292+
b.ForceStrictSni = "disabled"
286293
case "tfo":
287294
b.Tfo = true
288295
case "v6only":
@@ -575,6 +582,13 @@ func serializeBindParams(b models.BindParams, path string, opt *options.Configur
575582
b.NoTlsv13 {
576583
options = append(options, &params.BindOptionWord{Name: "no-tlsv13"})
577584
}
585+
if b.TLSTickets == "disabled" ||
586+
b.NoTLSTickets {
587+
options = append(options, &params.BindOptionWord{Name: "no-tls-tickets"})
588+
}
589+
if b.TLSTickets == "disabled" {
590+
options = append(options, &params.BindOptionWord{Name: "tls-tickets"})
591+
}
578592
if b.GenerateCertificates {
579593
options = append(options, &params.BindOptionWord{Name: "generate-certificates"})
580594
}
@@ -620,9 +634,6 @@ func serializeBindParams(b models.BindParams, path string, opt *options.Configur
620634
if b.NoCaNames {
621635
options = append(options, &params.BindOptionWord{Name: "no-ca-names"})
622636
}
623-
if b.NoTLSTickets {
624-
options = append(options, &params.BindOptionWord{Name: "no-tls-tickets"})
625-
}
626637
if b.Npn != "" {
627638
options = append(options, &params.BindOptionValue{Name: "npn", Value: b.Npn})
628639
}
@@ -641,9 +652,14 @@ func serializeBindParams(b models.BindParams, path string, opt *options.Configur
641652
if b.SslMinVer != "" {
642653
options = append(options, &params.BindOptionValue{Name: "ssl-min-ver", Value: b.SslMinVer})
643654
}
644-
if b.StrictSni {
655+
if b.ForceStrictSni == "enabled" ||
656+
b.StrictSni {
645657
options = append(options, &params.BindOptionWord{Name: "strict-sni"})
646658
}
659+
if b.ForceStrictSni == "disabled" ||
660+
b.NoStrictSni {
661+
options = append(options, &params.BindOptionWord{Name: "no-strict-sni"})
662+
}
647663
if b.Tfo {
648664
options = append(options, &params.BindOptionWord{Name: "tfo"})
649665
}

models/bind_params.go

Lines changed: 106 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/bind_params_compare.go

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

0 commit comments

Comments
 (0)