From fad9ebed7b87c720fa0dfce03031dd9793911ac4 Mon Sep 17 00:00:00 2001 From: ale <ale@incal.net> Date: Sun, 21 Feb 2021 10:05:33 +0000 Subject: [PATCH] Do not list streams with zero listeners on the debug page --- node/debug.go | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/node/debug.go b/node/debug.go index fe59f70c..b39b80e4 100644 --- a/node/debug.go +++ b/node/debug.go @@ -45,6 +45,14 @@ type mountStatus struct { TransMounts []*mountStatus } +func (m *mountStatus) totalListeners() int { + l := m.Listeners + for _, ms := range m.TransMounts { + l += ms.Listeners + } + return l +} + func newMountStatus(m *pb.Mount, nodes []*nodeInfo, icecastMounts map[string]*pb.IcecastMount) *mountStatus { var listeners int for _, n := range nodes { @@ -118,6 +126,16 @@ func mountsToStatus(mounts []*pb.Mount, nodes []*nodeInfo, icecastMounts map[str return msl } +func filterActiveMountStatus(mounts []*mountStatus) []*mountStatus { + out := make([]*mountStatus, 0, len(mounts)) + for _, ms := range mounts { + if ms.totalListeners() > 0 { + out = append(out, ms) + } + } + return out +} + type statusPageHandler struct { n *Node domain string @@ -144,7 +162,8 @@ func (s *statusPageHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) { } sort.Sort(statusList(statuses)) - ms := mountsToStatus(s.n.mounts.GetMounts(), nodes, exemplary) + ms := filterActiveMountStatus( + mountsToStatus(s.n.mounts.GetMounts(), nodes, exemplary)) vars := struct { Domain string Nodes []*pb.Status -- GitLab