diff options
author | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-05-01 18:19:00 +0200 |
---|---|---|
committer | HimbeerserverDE <himbeerserverde@gmail.com> | 2022-05-01 18:19:22 +0200 |
commit | 1b2d0d40f704813835bafebe095e7e31fbc00168 (patch) | |
tree | a9052426f13e1df0f7050a7eaaa5bd7532efefef /config.go | |
parent | 5ba1fb6132a16bc2ed2480c3e6ac5e3e85d95752 (diff) |
Make AddServer require at least one media pool member
Diffstat (limited to 'config.go')
-rw-r--r-- | config.go | 18 |
1 files changed, 15 insertions, 3 deletions
@@ -114,20 +114,32 @@ AppendLoop: // AddServer dynamically configures a new Server at runtime. // Servers added in this way are ephemeral and will be lost // when the proxy shuts down. -// For the media to work you have to specify an alternative -// media source that is always available, even if the server -// is offline. +// The server must be part of a media pool with at least one +// other member. At least one of the other members always +// needs to be reachable. func AddServer(s Server) bool { configMu.Lock() defer configMu.Unlock() s.dynamic = true + for _, srv := range config.Servers { if srv.Name == s.Name { return false } } + var poolMembers bool + for _, srv := range config.Servers { + if srv.MediaPool == s.MediaPool { + poolMembers = true + } + } + + if !poolMembers { + return false + } + config.Servers = append(config.Servers, s) return true } |