fix passing of peer slices by reference
This commit is contained in:
parent
3999e35453
commit
ac45708bfd
1 changed files with 6 additions and 6 deletions
|
@ -227,17 +227,17 @@ func writePeersCompact(w io.Writer, a *models.Announce, u *models.User, t *model
|
|||
func getPeers(a *models.Announce, u *models.User, t *models.Torrent, peerCount int) (ipv4s, ipv6s []*models.Peer) {
|
||||
if a.Left == 0 {
|
||||
// If they're seeding, give them only leechers.
|
||||
splitPeers(ipv4s, ipv6s, u, t.Leechers, peerCount)
|
||||
splitPeers(&ipv4s, &ipv6s, u, t.Leechers, peerCount)
|
||||
} else {
|
||||
// If they're leeching, prioritize giving them seeders.
|
||||
count := splitPeers(ipv4s, ipv6s, u, t.Seeders, peerCount)
|
||||
splitPeers(ipv4s, ipv6s, u, t.Leechers, peerCount-count)
|
||||
count := splitPeers(&ipv4s, &ipv6s, u, t.Seeders, peerCount)
|
||||
splitPeers(&ipv4s, &ipv6s, u, t.Leechers, peerCount-count)
|
||||
}
|
||||
|
||||
return
|
||||
}
|
||||
|
||||
func splitPeers(ipv4s, ipv6s []*models.Peer, u *models.User, peers map[string]models.Peer, peerCount int) (count int) {
|
||||
func splitPeers(ipv4s, ipv6s *[]*models.Peer, u *models.User, peers map[string]models.Peer, peerCount int) (count int) {
|
||||
for _, peer := range peers {
|
||||
if count >= peerCount {
|
||||
break
|
||||
|
@ -248,9 +248,9 @@ func splitPeers(ipv4s, ipv6s []*models.Peer, u *models.User, peers map[string]mo
|
|||
}
|
||||
|
||||
if ip := peer.IP.To4(); ip != nil {
|
||||
ipv4s = append(ipv4s, &peer)
|
||||
*ipv4s = append(*ipv4s, &peer)
|
||||
} else {
|
||||
ipv6s = append(ipv6s, &peer)
|
||||
*ipv6s = append(*ipv6s, &peer)
|
||||
}
|
||||
|
||||
count++
|
||||
|
|
Loading…
Reference in a new issue