internal/clientinfo: avoid heap alloc with mdns read loop

Once resource record (RR)  was used to extract necessary information, it
should be freed in memory. However, the current way that ctrld declare
the RRs causing the slices to be heap allocated, and stay in memory
longer than necessary. On system with low capacity, or firmware that GC
does not run agressively, it may causes the system memory exhausted.

To fix it, prevent RRs to be heap allocated, so they could be freed
immediately after each iterations.
This commit is contained in:
Cuong Manh Le authored and Cuong Manh Le committed 2024-08-07 15:27:07 +07:00
1 parent 1e1c5a4dc8
commit c24589a5be
1 file changed
+1 -1
+1 -1
View File
@@ -165,7 +165,7 @@ func (m *mdns) readLoop(conn *net.UDPConn) {
}
var ip, name string
rrs := make([]dns.RR, 0, len(msg.Answer)+len(msg.Extra))
var rrs []dns.RR
rrs = append(rrs, msg.Answer...)
rrs = append(rrs, msg.Extra...)
for _, rr := range rrs {