From 8f05b8f9827ede829dd54ab27cc5660cd0382f44 Mon Sep 17 00:00:00 2001 From: Audrius Butkevicius Date: Tue, 7 Apr 2015 13:20:40 +0100 Subject: [PATCH] Change /rest/system/connections output (fixes #1487) --- internal/model/model.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/model/model.go b/internal/model/model.go index d1fe4f3b2..06d5e9404 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -201,7 +201,7 @@ func (info ConnectionInfo) MarshalJSON() ([]byte, error) { } // ConnectionStats returns a map with connection statistics for each connected device. -func (m *Model) ConnectionStats() map[string]ConnectionInfo { +func (m *Model) ConnectionStats() map[string]interface{} { type remoteAddrer interface { RemoteAddr() net.Addr } @@ -209,7 +209,8 @@ func (m *Model) ConnectionStats() map[string]ConnectionInfo { m.pmut.RLock() m.fmut.RLock() - var res = make(map[string]ConnectionInfo) + var res = make(map[string]interface{}) + conns := make(map[string]ConnectionInfo, len(m.protoConn)) for device, conn := range m.protoConn { ci := ConnectionInfo{ Statistics: conn.Statistics(), @@ -219,9 +220,11 @@ func (m *Model) ConnectionStats() map[string]ConnectionInfo { ci.Address = nc.RemoteAddr().String() } - res[device.String()] = ci + conns[device.String()] = ci } + res["connections"] = conns + m.fmut.RUnlock() m.pmut.RUnlock()