dnsseeder/zcash/address.go

41 lines
951 B
Go

package zcash
import (
"net"
"strconv"
"time"
"github.com/btcsuite/btcd/wire"
)
type Address struct {
netaddr *wire.NetAddress
valid bool
blacklist bool
lastTried time.Time
}
func (a *Address) IsGood() bool {
return a.valid == true
}
func (a *Address) IsBad() bool {
return a.blacklist == true
}
func (a *Address) String() string {
portString := strconv.Itoa(int(a.netaddr.Port))
return net.JoinHostPort(a.netaddr.IP.String(), portString)
}
// Addresses should be sortable by least-recently-tried
type AddrList []*Address
func (list AddrList) Len() int { return len(list) }
func (list AddrList) Swap(i, j int) { list[i], list[j] = list[j], list[i] }
func (list AddrList) Less(i, j int) bool { return list[i].lastTried.Before(list[j].lastTried) }
// GetShuffledAddressList returns a slice of n valid addresses in random order.
func GetShuffledAddressList(addrList []*Address, n int) []*Address { return nil }