Skip to content
This repository was archived by the owner on May 26, 2022. It is now read-only.

Commit d5c6295

Browse files
avoid assigning a function to a variable
1 parent 0f85476 commit d5c6295

File tree

1 file changed

+40
-41
lines changed

1 file changed

+40
-41
lines changed

swarm_dial.go

Lines changed: 40 additions & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,45 @@ func (s *Swarm) canDial(addr ma.Multiaddr) bool {
321321
return t != nil && t.CanDial(addr)
322322
}
323323

324+
// ranks addresses in descending order of preference for dialing
325+
// Private UDP > Public UDP > Private TCP > Public TCP > UDP Relay server > TCP Relay server
326+
func (s *Swarm) rankAddrs(addrs []ma.Multiaddr) []ma.Multiaddr {
327+
var localUdpAddrs []ma.Multiaddr // private udp
328+
var relayUdpAddrs []ma.Multiaddr // relay udp
329+
var othersUdp []ma.Multiaddr // public udp
330+
331+
var localFdAddrs []ma.Multiaddr // private fd consuming
332+
var relayFdAddrs []ma.Multiaddr // relay fd consuming
333+
var othersFd []ma.Multiaddr // public fd consuming
334+
335+
for _, a := range addrs {
336+
if _, err := a.ValueForProtocol(ma.P_CIRCUIT); err == nil {
337+
if s.IsFdConsumingAddr(a) {
338+
relayFdAddrs = append(relayFdAddrs, a)
339+
continue
340+
}
341+
relayUdpAddrs = append(relayUdpAddrs, a)
342+
} else if manet.IsPrivateAddr(a) {
343+
if s.IsFdConsumingAddr(a) {
344+
localFdAddrs = append(localFdAddrs, a)
345+
continue
346+
}
347+
localUdpAddrs = append(localUdpAddrs, a)
348+
} else {
349+
if s.IsFdConsumingAddr(a) {
350+
othersFd = append(othersFd, a)
351+
continue
352+
}
353+
othersUdp = append(othersUdp, a)
354+
}
355+
}
356+
357+
relays := append(relayUdpAddrs, relayFdAddrs...)
358+
fds := append(localFdAddrs, othersFd...)
359+
360+
return append(append(append(localUdpAddrs, othersUdp...), fds...), relays...)
361+
}
362+
324363
// dial is the actual swarm's dial logic, gated by Dial.
325364
func (s *Swarm) dial(ctx context.Context, p peer.ID) (*Conn, error) {
326365
var logdial = lgbl.Dial("swarm", s.LocalPeer(), p, nil, nil)
@@ -360,47 +399,7 @@ func (s *Swarm) dial(ctx context.Context, p peer.ID) (*Conn, error) {
360399
return nil, ErrDialBackoff
361400
}
362401

363-
// ranks addresses in descending order of preference for dialing
364-
// Private UDP > Public UDP > Private TCP > Public TCP > UDP Relay server > TCP Relay server
365-
rankAddrsFnc := func(addrs []ma.Multiaddr) []ma.Multiaddr {
366-
var localUdpAddrs []ma.Multiaddr // private udp
367-
var relayUdpAddrs []ma.Multiaddr // relay udp
368-
var othersUdp []ma.Multiaddr // public udp
369-
370-
var localFdAddrs []ma.Multiaddr // private fd consuming
371-
var relayFdAddrs []ma.Multiaddr // relay fd consuming
372-
var othersFd []ma.Multiaddr // public fd consuming
373-
374-
for _, a := range addrs {
375-
if _, err := a.ValueForProtocol(ma.P_CIRCUIT); err == nil {
376-
if s.IsFdConsumingAddr(a) {
377-
relayFdAddrs = append(relayFdAddrs, a)
378-
continue
379-
}
380-
relayUdpAddrs = append(relayUdpAddrs, a)
381-
} else if manet.IsPrivateAddr(a) {
382-
if s.IsFdConsumingAddr(a) {
383-
localFdAddrs = append(localFdAddrs, a)
384-
continue
385-
}
386-
localUdpAddrs = append(localUdpAddrs, a)
387-
} else {
388-
if s.IsFdConsumingAddr(a) {
389-
othersFd = append(othersFd, a)
390-
continue
391-
}
392-
othersUdp = append(othersUdp, a)
393-
}
394-
}
395-
396-
relays := append(relayUdpAddrs, relayFdAddrs...)
397-
fds := append(localFdAddrs, othersFd...)
398-
399-
return append(append(append(localUdpAddrs, othersUdp...), fds...), relays...)
400-
}
401-
402-
connC, dialErr := s.dialAddrs(ctx, p, rankAddrsFnc(goodAddrs))
403-
402+
connC, dialErr := s.dialAddrs(ctx, p, s.rankAddrs(goodAddrs))
404403
if dialErr != nil {
405404
logdial["error"] = dialErr.Cause.Error()
406405
switch dialErr.Cause {

0 commit comments

Comments
 (0)