Skip to content

Commit 7b075ee

Browse files
committed
BUG/MEDIUM: ensure server templates are ordered by name when serialized
1 parent 244c391 commit 7b075ee

File tree

1 file changed

+11
-3
lines changed

1 file changed

+11
-3
lines changed

configuration/structured_backends.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,9 +317,17 @@ func serializeBackendSection(a StructuredToParserArgs, b *models.Backend) error
317317
return a.HandleError(strconv.FormatInt(int64(i), 10), BackendParentName, b.Name, a.TID, a.TID == "", err)
318318
}
319319
}
320-
for _, template := range b.ServerTemplates {
321-
if err = p.Insert(parser.Backends, b.Name, "server-template", SerializeServerTemplate(template, a.Options), -1); err != nil {
322-
return a.HandleError(template.Prefix, BackendParentName, b.Name, a.TID, a.TID == "", err)
320+
321+
// Ensure sorting of ServerTemplates by name
322+
orderedNames = make([]string, 0, len(b.ServerTemplates))
323+
for name := range b.ServerTemplates {
324+
orderedNames = append(orderedNames, name)
325+
}
326+
sort.Strings(orderedNames)
327+
for _, name := range orderedNames {
328+
localT := b.ServerTemplates[name]
329+
if err = p.Insert(parser.Backends, b.Name, "server-template", SerializeServerTemplate(localT, a.Options), -1); err != nil {
330+
return a.HandleError(localT.Prefix, BackendParentName, b.Name, a.TID, a.TID == "", err)
323331
}
324332
}
325333
for i, rule := range b.HTTPAfterResponseRuleList {

0 commit comments

Comments
 (0)