bep40.go | 5 ----- ipport.go | 21 +++++++++++++++++++++ diff --git a/bep40.go b/bep40.go index fa696bdac57233917e868cc40e2664ebb00b09ac..6c507d354280e5156f3cbc1996939c2167d3d356 100644 --- a/bep40.go +++ b/bep40.go @@ -13,11 +13,6 @@ var table = crc32.MakeTable(crc32.Castagnoli) type peerPriority = uint32 -type ipPort struct { - IP net.IP - Port uint16 -} - func sameSubnet(ones, bits int, a, b net.IP) bool { mask := net.CIDRMask(ones, bits) return a.Mask(mask).Equal(b.Mask(mask)) diff --git a/ipport.go b/ipport.go new file mode 100644 index 0000000000000000000000000000000000000000..38036cb40c3aaf86848cbd64b90142f9ded744d0 --- /dev/null +++ b/ipport.go @@ -0,0 +1,21 @@ +package torrent + +import ( + "net" + "strconv" + + "github.com/anacrolix/missinggo" +) + +type ipPort struct { + IP net.IP + Port uint16 +} + +func (me ipPort) String() string { + return net.JoinHostPort(me.IP.String(), strconv.FormatUint(uint64(me.Port), 10)) +} + +func ipPortFromNetAddr(na net.Addr) ipPort { + return ipPort{missinggo.AddrIP(na), uint16(missinggo.AddrPort(na))} +}