Skip to content

Commit 3a43c77

Browse files
oliwermjuraga
authored andcommitted
MINOR: Add support for server "renegotiate" keywords
1 parent c96fe79 commit 3a43c77

11 files changed

Lines changed: 91 additions & 5 deletions

File tree

cmd/server_params_runtime/server_params_prepare_for_runtime.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ var ServerParamsPrepareForRuntimeMap = map[string]string{ //nolint:gochecknoglob
1919
"CheckReusePool": FuncDoNotSendDisabledFields,
2020
"CheckViaSocks4": FuncDoNotSendDisabledFields,
2121
"ForceSslv3": FuncDoNotSendDisabledFields,
22+
"Renegotiate": FuncDoNotSendEnabledFields, // This won't be true with AWS-LC.
2223
"Sslv3": FuncDoNotSendDisabledFields,
2324
"ForceTlsv10": FuncDoNotSendDisabledFields,
2425
"Tlsv10": FuncDoNotSendDisabledFields,

config-parser/params/server-options.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,8 @@ var serverOptionFactoryMethods = map[string]func() ServerOption{ //nolint:gochec
185185
"no-tlsv12": func() ServerOption { return &ServerOptionWord{Name: "no-tlsv12"} },
186186
"force-tlsv13": func() ServerOption { return &ServerOptionWord{Name: "force-tlsv13"} },
187187
"no-tlsv13": func() ServerOption { return &ServerOptionWord{Name: "no-tlsv13"} },
188+
"renegotiate": func() ServerOption { return &ServerOptionWord{Name: "renegotiate"} },
189+
"no-renegotiate": func() ServerOption { return &ServerOptionWord{Name: "no-renegotiate"} },
188190
"send-proxy": func() ServerOption { return &ServerOptionWord{Name: "send-proxy"} },
189191
"no-send-proxy": func() ServerOption { return &ServerOptionWord{Name: "no-send-proxy"} },
190192
"send-proxy-v2": func() ServerOption { return &ServerOptionWord{Name: "send-proxy-v2"} },

configuration/server.go

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -324,6 +324,10 @@ func parseServerParams(serverOptions []params.ServerOption, serverParams *models
324324
case "no-tlsv13":
325325
serverParams.Tlsv13 = "disabled"
326326
serverParams.ForceTlsv13 = "disabled"
327+
case "renegotiate":
328+
serverParams.Renegotiate = "enabled"
329+
case "no-renegotiate":
330+
serverParams.Renegotiate = "disabled"
327331
case "send-proxy":
328332
serverParams.SendProxy = "enabled"
329333
case "no-send-proxy":
@@ -630,6 +634,11 @@ func SerializeServerParams(s models.ServerParams, opt *options.ConfigurationOpti
630634
if s.CheckViaSocks4 == "enabled" {
631635
options = append(options, &params.ServerOptionWord{Name: "check-via-socks4"})
632636
}
637+
if s.Renegotiate == "enabled" {
638+
options = append(options, &params.ServerOptionWord{Name: "renegotiate"})
639+
} else if s.Renegotiate == "disabled" {
640+
options = append(options, &params.ServerOptionWord{Name: "no-renegotiate"})
641+
}
633642
if s.Sslv3 == "enabled" {
634643
options = append(options, &params.ServerOptionWord{Name: "force-sslv3"})
635644
}

models/server_params.go

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

models/server_params_compare.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.

models/server_params_compare_test.go

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

models/server_params_prepare_for_runtime.go

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

specification/build/haproxy_spec.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -947,6 +947,12 @@ definitions:
947947
redir:
948948
type: string
949949
x-display-name: Prefix
950+
renegotiate:
951+
description: Toggles the secure renegotiation mechanism for an SSL backend.
952+
enum:
953+
- enabled
954+
- disabled
955+
type: string
950956
resolve-net:
951957
pattern: ^([A-Za-z0-9.:/]+)(,[A-Za-z0-9.:/]+)*$
952958
type: string

specification/models/configuration/server_params.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,10 @@ server_params:
121121
type: integer
122122
x-display-name: Nr. of consecutive failed checks
123123
x-nullable: true
124+
renegotiate:
125+
type: string
126+
enum: [enabled, disabled]
127+
description: Toggles the secure renegotiation mechanism for an SSL backend.
124128
sslv3:
125129
type: string
126130
enum: [enabled, disabled]

test/configuration_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -808,8 +808,8 @@ backend test # my comment
808808
external-check command /bin/false
809809
use-server webserv if TRUE # my comment
810810
use-server webserv2 unless TRUE
811-
server webserv 192.168.1.1:9200 maxconn 1000 ssl weight 10 inter 2s cookie BLAH slowstart 6000 proxy-v2-options authority,crc32c ws h1 pool-low-conn 128 id 1234 pool-purge-delay 10s tcp-ut 2s curves secp384r1 client-sigalgs ECDSA+SHA256:RSA+SHA256 sigalgs ECDSA+SHA256 log-bufsize 10 set-proxy-v2-tlv-fmt(0x20) %[fc_pp_tlv(0x20)] init-state fully-up idle-ping 10s check-reuse-pool strict-maxconn # my comment
812-
server webserv2 192.168.1.1:9300 maxconn 1000 ssl weight 10 inter 2s cookie BLAH slowstart 6000 proxy-v2-options authority,crc32c ws h1 pool-low-conn 128 hash-key akey pool-conn-name apoolconnname no-check-reuse-pool check-pool-conn-name foo # {"comment": "my structured comment", "id": "my_random_id_for_server"}
811+
server webserv 192.168.1.1:9200 maxconn 1000 ssl weight 10 inter 2s cookie BLAH slowstart 6000 proxy-v2-options authority,crc32c ws h1 pool-low-conn 128 id 1234 pool-purge-delay 10s tcp-ut 2s curves secp384r1 client-sigalgs ECDSA+SHA256:RSA+SHA256 sigalgs ECDSA+SHA256 no-renegotiate log-bufsize 10 set-proxy-v2-tlv-fmt(0x20) %[fc_pp_tlv(0x20)] init-state fully-up idle-ping 10s check-reuse-pool strict-maxconn # my comment
812+
server webserv2 192.168.1.1:9300 maxconn 1000 ssl weight 10 inter 2s cookie BLAH slowstart 6000 proxy-v2-options authority,crc32c ws h1 pool-low-conn 128 hash-key akey pool-conn-name apoolconnname no-check-reuse-pool check-pool-conn-name foo renegotiate # {"comment": "my structured comment", "id": "my_random_id_for_server"}
813813
http-request set-dst hdr(x-dst) # my comment
814814
http-request set-dst-port int(4000)
815815
http-request set-uri %[url,regsub(^/metrics/,/,)] if { path_beg /metrics }

0 commit comments

Comments
 (0)