Skip to content

Commit bbbe085

Browse files
committed
BUG/MEDIUM: Fix bind updates without restart
Some keywords in bind parameters were not using the right type for serialization (ServerOption instead of BindOption). Since both types share the same interface, the serialization to disk was working, but the parser was silently ignoring ServerOptions. So when the user used the API to create a new Bind and then GET it, the parser would miss those keywords because they have the wrong type in the cache.
1 parent 428abe2 commit bbbe085

1 file changed

Lines changed: 17 additions & 17 deletions

File tree

configuration/bind.go

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -492,25 +492,25 @@ func serializeBindParams(b models.BindParams, path string) (options []params.Bin
492492
options = append(options, &params.BindOptionWord{Name: "defer-accept"})
493493
}
494494
if b.ExposeFdListeners {
495-
options = append(options, &params.ServerOptionDoubleWord{Name: "expose-fd", Value: "listeners"})
495+
options = append(options, &params.BindOptionDoubleWord{Name: "expose-fd", Value: "listeners"})
496496
}
497497
if b.ForceSslv3 {
498-
options = append(options, &params.ServerOptionWord{Name: "force-sslv3"})
498+
options = append(options, &params.BindOptionWord{Name: "force-sslv3"})
499499
}
500500
if b.ForceTlsv10 {
501-
options = append(options, &params.ServerOptionWord{Name: "force-tlsv10"})
501+
options = append(options, &params.BindOptionWord{Name: "force-tlsv10"})
502502
}
503503
if b.ForceTlsv11 {
504-
options = append(options, &params.ServerOptionWord{Name: "force-tlsv11"})
504+
options = append(options, &params.BindOptionWord{Name: "force-tlsv11"})
505505
}
506506
if b.ForceTlsv12 {
507-
options = append(options, &params.ServerOptionWord{Name: "force-tlsv12"})
507+
options = append(options, &params.BindOptionWord{Name: "force-tlsv12"})
508508
}
509509
if b.ForceTlsv13 {
510-
options = append(options, &params.ServerOptionWord{Name: "force-tlsv13"})
510+
options = append(options, &params.BindOptionWord{Name: "force-tlsv13"})
511511
}
512512
if b.GenerateCertificates {
513-
options = append(options, &params.ServerOptionWord{Name: "generate-certificates"})
513+
options = append(options, &params.BindOptionWord{Name: "generate-certificates"})
514514
}
515515
if b.Gid != 0 {
516516
options = append(options, &params.BindOptionValue{Name: "gid", Value: strconv.FormatInt(b.Gid, 10)})
@@ -546,31 +546,31 @@ func serializeBindParams(b models.BindParams, path string) (options []params.Bin
546546
options = append(options, &params.BindOptionValue{Name: "nbconn", Value: strconv.FormatInt(b.Nbconn, 10)})
547547
}
548548
if b.NoCaNames {
549-
options = append(options, &params.ServerOptionWord{Name: "no-ca-names"})
549+
options = append(options, &params.BindOptionWord{Name: "no-ca-names"})
550550
}
551551
if b.NoSslv3 {
552-
options = append(options, &params.ServerOptionWord{Name: "no-sslv3"})
552+
options = append(options, &params.BindOptionWord{Name: "no-sslv3"})
553553
}
554554
if b.NoTLSTickets {
555-
options = append(options, &params.ServerOptionWord{Name: "no-tls-tickets"})
555+
options = append(options, &params.BindOptionWord{Name: "no-tls-tickets"})
556556
}
557557
if b.NoTlsv10 {
558-
options = append(options, &params.ServerOptionWord{Name: "no-tlsv10"})
558+
options = append(options, &params.BindOptionWord{Name: "no-tlsv10"})
559559
}
560560
if b.NoTlsv11 {
561-
options = append(options, &params.ServerOptionWord{Name: "no-tlsv11"})
561+
options = append(options, &params.BindOptionWord{Name: "no-tlsv11"})
562562
}
563563
if b.NoTlsv12 {
564-
options = append(options, &params.ServerOptionWord{Name: "no-tlsv12"})
564+
options = append(options, &params.BindOptionWord{Name: "no-tlsv12"})
565565
}
566566
if b.NoTlsv13 {
567-
options = append(options, &params.ServerOptionWord{Name: "no-tlsv13"})
567+
options = append(options, &params.BindOptionWord{Name: "no-tlsv13"})
568568
}
569569
if b.Npn != "" {
570570
options = append(options, &params.BindOptionValue{Name: "npn", Value: b.Npn})
571571
}
572572
if b.PreferClientCiphers {
573-
options = append(options, &params.ServerOptionWord{Name: "prefer-client-ciphers"})
573+
options = append(options, &params.BindOptionWord{Name: "prefer-client-ciphers"})
574574
}
575575
if b.Proto != "" {
576576
options = append(options, &params.BindOptionValue{Name: "proto", Value: b.Proto})
@@ -585,10 +585,10 @@ func serializeBindParams(b models.BindParams, path string) (options []params.Bin
585585
options = append(options, &params.BindOptionValue{Name: "ssl-min-ver", Value: b.SslMinVer})
586586
}
587587
if b.StrictSni {
588-
options = append(options, &params.ServerOptionWord{Name: "strict-sni"})
588+
options = append(options, &params.BindOptionWord{Name: "strict-sni"})
589589
}
590590
if b.Tfo {
591-
options = append(options, &params.ServerOptionWord{Name: "tfo"})
591+
options = append(options, &params.BindOptionWord{Name: "tfo"})
592592
}
593593
if b.Thread != "" {
594594
options = append(options, &params.BindOptionValue{Name: "thread", Value: b.Thread})

0 commit comments

Comments
 (0)