MCPcopy Index your code
hub / github.com/coder/coder / compareDERPRegions

Function compareDERPRegions

tailnet/derpmap.go:233–311  ·  view source on GitHub ↗
(a *tailcfg.DERPRegion, b *tailcfg.DERPRegion)

Source from the content-addressed store, hash-verified

231}
232
233func compareDERPRegions(a *tailcfg.DERPRegion, b *tailcfg.DERPRegion) bool {
234 if a == nil || b == nil {
235 return false
236 }
237 if a.EmbeddedRelay != b.EmbeddedRelay {
238 return false
239 }
240 if a.RegionID != b.RegionID {
241 return false
242 }
243 if a.RegionCode != b.RegionCode {
244 return false
245 }
246 if a.RegionName != b.RegionName {
247 return false
248 }
249 if a.Avoid != b.Avoid {
250 return false
251 }
252 if len(a.Nodes) != len(b.Nodes) {
253 return false
254 }
255
256 // Convert both slices to maps so ordering can be ignored easier.
257 aNodes := map[string]*tailcfg.DERPNode{}
258 for _, node := range a.Nodes {
259 aNodes[node.Name] = node
260 }
261 bNodes := map[string]*tailcfg.DERPNode{}
262 for _, node := range b.Nodes {
263 bNodes[node.Name] = node
264 }
265
266 for name, aNode := range aNodes {
267 bNode, ok := bNodes[name]
268 if !ok {
269 return false
270 }
271
272 if aNode.Name != bNode.Name {
273 return false
274 }
275 if aNode.RegionID != bNode.RegionID {
276 return false
277 }
278 if aNode.HostName != bNode.HostName {
279 return false
280 }
281 if aNode.CertName != bNode.CertName {
282 return false
283 }
284 if aNode.IPv4 != bNode.IPv4 {
285 return false
286 }
287 if aNode.IPv6 != bNode.IPv6 {
288 return false
289 }
290 if aNode.STUNPort != bNode.STUNPort {

Callers 1

CompareDERPMapsFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected