Skip to content

Commit d99bcc9

Browse files
author
Dmitriy Matrenichev
committed
chore: refactor mergeDNSServers func
Remove unnecessary allocations, streamline logic. Signed-off-by: Dmitriy Matrenichev <dmitry.matrenichev@siderolabs.com>
1 parent 0cde08d commit d99bcc9

1 file changed

Lines changed: 7 additions & 18 deletions

File tree

internal/app/machined/pkg/controllers/network/resolver_merge.go

Lines changed: 7 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ import (
1616
"github.com/cosi-project/runtime/pkg/resource"
1717
"github.com/cosi-project/runtime/pkg/safe"
1818
"github.com/cosi-project/runtime/pkg/state"
19+
"github.com/siderolabs/gen/xslices"
1920
"go.uber.org/zap"
2021

2122
"github.com/siderolabs/talos/pkg/machinery/resources/network"
@@ -141,31 +142,19 @@ func mergeDNSServers(dst *[]netip.Addr, src []netip.Addr) {
141142
return
142143
}
143144

144-
srcHasV4 := len(filterIPFamily(src, true)) > 0
145-
srcHasV6 := len(filterIPFamily(src, false)) > 0
146-
dstHasV4 := len(filterIPFamily(*dst, true)) > 0
147-
dstHasV6 := len(filterIPFamily(*dst, false)) > 0
145+
srcHasV4 := slices.IndexFunc(src, netip.Addr.Is4) != -1
146+
srcHasV6 := slices.IndexFunc(src, netip.Addr.Is6) != -1
147+
dstHasV4 := slices.IndexFunc(*dst, netip.Addr.Is4) != -1
148+
dstHasV6 := slices.IndexFunc(*dst, netip.Addr.Is6) != -1
148149

149150
// if old set has IPv4, and new one doesn't, preserve IPv4
150151
// and same vice versa for IPv6
151152
switch {
152153
case dstHasV4 && !srcHasV4:
153-
*dst = slices.Concat(src, filterIPFamily(*dst, true))
154+
*dst = slices.Concat(src, xslices.Filter(*dst, netip.Addr.Is4))
154155
case dstHasV6 && !srcHasV6:
155-
*dst = slices.Concat(src, filterIPFamily(*dst, false))
156+
*dst = slices.Concat(src, xslices.Filter(*dst, netip.Addr.Is6))
156157
default:
157158
*dst = src
158159
}
159160
}
160-
161-
func filterIPFamily(src []netip.Addr, isIPv4 bool) []netip.Addr {
162-
var dst []netip.Addr
163-
164-
for _, addr := range src {
165-
if addr.Is4() == isIPv4 {
166-
dst = append(dst, addr)
167-
}
168-
}
169-
170-
return dst
171-
}

0 commit comments

Comments
 (0)