diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-12-06 17:42:07 +0100 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2023-12-06 17:42:07 +0100 |
commit | 392e0387da8ad9f6b4ded69082de2c9deaffb13e (patch) | |
tree | dcc2576fef1a4452cff4504c6a8b705f5b91adee | |
parent | e0f7ade1b71322b038b735d12144a09c260053a4 (diff) |
fix simple infinite fallback loops
A server can no longer fall back to itself. It is still possible to create loops with more than one server.
-rw-r--r-- | config.go | 11 |
1 files changed, 10 insertions, 1 deletions
@@ -247,7 +247,16 @@ func FallbackServers(server string) []string { } fallbacks := srv.Fallbacks - return append(fallbacks, conf.FallbackServers...) + fallbacks = append(fallbacks, conf.FallbackServers...) + + final := make([]string, 0, len(fallbacks)) + for _, srvName := range fallbacks { + if srvName != server { + final = append(final, srvName) + } + } + + return final } // LoadConfig attempts to parse the configuration file. |