Fix semantics of seed stats, fix Peer.IPv6() always returning true

This commit is contained in:
Justin Li 2014-07-22 01:06:30 -04:00
parent 26f87139e0
commit e17c984ec8
3 changed files with 11 additions and 5 deletions

View file

@ -122,12 +122,16 @@ func (s *Stats) handleEvents() {
s.IPv4Peers.Left++ s.IPv4Peers.Left++
case ReapedLeechIPv4: case ReapedLeechIPv4:
s.IPv4Peers.Reaped++ s.IPv4Peers.Reaped++
case NewSeedIPv4: case NewSeedIPv4:
s.IPv4Peers.SeedsJoined++ s.IPv4Peers.SeedsJoined++
s.IPv4Peers.Joined++
case DeletedSeedIPv4: case DeletedSeedIPv4:
s.IPv4Peers.SeedsLeft++ s.IPv4Peers.SeedsLeft++
s.IPv4Peers.Left++
case ReapedSeedIPv4: case ReapedSeedIPv4:
s.IPv4Peers.SeedsReaped++ s.IPv4Peers.SeedsReaped++
s.IPv4Peers.Reaped++
case CompletedIPv6: case CompletedIPv6:
s.IPv6Peers.Completed++ s.IPv6Peers.Completed++
@ -137,12 +141,16 @@ func (s *Stats) handleEvents() {
s.IPv6Peers.Left++ s.IPv6Peers.Left++
case ReapedLeechIPv6: case ReapedLeechIPv6:
s.IPv6Peers.Reaped++ s.IPv6Peers.Reaped++
case NewSeedIPv6: case NewSeedIPv6:
s.IPv6Peers.SeedsJoined++ s.IPv6Peers.SeedsJoined++
s.IPv6Peers.Joined++
case DeletedSeedIPv6: case DeletedSeedIPv6:
s.IPv6Peers.SeedsLeft++ s.IPv6Peers.SeedsLeft++
s.IPv6Peers.Left++
case ReapedSeedIPv6: case ReapedSeedIPv6:
s.IPv6Peers.SeedsReaped++ s.IPv6Peers.SeedsReaped++
s.IPv6Peers.Reaped++
case NewTorrent: case NewTorrent:
s.TorrentsAdded++ s.TorrentsAdded++

View file

@ -259,9 +259,7 @@ func appendPeers(ipv4s, ipv6s models.PeerList, ann *models.Announce, announcer *
for _, peer := range peers { for _, peer := range peers {
if count >= wanted { if count >= wanted {
break break
} } else if peersEquivalent(&peer, announcer) {
if peersEquivalent(&peer, announcer) {
continue continue
} }

View file

@ -71,11 +71,11 @@ func NewPeer(a *Announce, u *User, t *Torrent) *Peer {
} }
func (p *Peer) IPv4() bool { func (p *Peer) IPv4() bool {
return len(p.IP.To4()) == 4 return p.IP.To4() != nil
} }
func (p *Peer) IPv6() bool { func (p *Peer) IPv6() bool {
return len(p.IP.To16()) == 16 return !p.IPv4()
} }
// Torrent is a swarm for a given torrent file. // Torrent is a swarm for a given torrent file.