Versions in this module Expand all Collapse all v1 v1.41.2 Mar 27, 2022 Changes in this version + const ExtensionBitDHT + const ExtensionBitExtended + const ExtensionBitFast + const ExtensionDeleteNumber + const ExtensionNameMetadata + const ExtensionNamePex + const Protocol + type CompactIp net.IP + func (me CompactIp) MarshalBencode() ([]byte, error) + type Decoder struct + MaxLength Integer + Pool *sync.Pool + R *bufio.Reader + func (d *Decoder) Decode(msg *Message) (err error) + type ExtendedHandshakeMessage struct + Encryption bool + Ipv4 CompactIp + Ipv6 net.IP + M map[ExtensionName]ExtensionNumber + MetadataSize int + Port int + Reqq int + V string + YourIp CompactIp + type ExtendedMetadataRequestMsg struct + Piece int + TotalSize int + Type ExtendedMetadataRequestMsgType + func (me ExtendedMetadataRequestMsg) PieceSize() int + type ExtendedMetadataRequestMsgType int + const DataMetadataExtensionMsgType + const HandshakeExtendedID + const RejectMetadataExtensionMsgType + const RequestMetadataExtensionMsgType + type ExtensionBit uint + type ExtensionName string + type ExtensionNumber int + func (me *ExtensionNumber) UnmarshalBinary(b []byte) error + type HandshakeResult struct + PeerID [20]byte + func Handshake(sock io.ReadWriter, ih *metainfo.Hash, peerID [20]byte, ...) (res HandshakeResult, err error) + type Integer uint32 + func (i *Integer) Read(r io.Reader) error + func (i *Integer) UnmarshalBinary(b []byte) error + func (i Integer) Int() int + func (i Integer) Uint32() uint32 + func (i Integer) Uint64() uint64 + type Message struct + Begin Integer + Bitfield []bool + ExtendedID ExtensionNumber + ExtendedPayload []byte + Index Integer + Keepalive bool + Length Integer + Piece []byte + Port uint16 + Type MessageType + func MakeCancelMessage(piece, offset, length Integer) Message + func MetadataExtensionRequestMsg(peerMetadataExtensionId ExtensionNumber, piece int) Message + func (me *Message) UnmarshalBinary(b []byte) error + func (msg Message) MarshalBinary() (data []byte, err error) + func (msg Message) MustMarshalBinary() []byte + func (msg Message) RequestSpec() (ret RequestSpec) + type MessageType byte + const AllowedFast + const Bitfield + const Cancel + const Choke + const Extended + const Have + const HaveAll + const HaveNone + const Interested + const NotInterested + const Piece + const Port + const Reject + const Request + const Suggest + const Unchoke + func (i MessageType) String() string + func (mt *MessageType) UnmarshalBinary(b []byte) error + func (mt MessageType) FastExtension() bool + type PeerExtensionBits [8]byte + func NewPeerExtensionBytes(bits ...ExtensionBit) (ret PeerExtensionBits) + func (pex *PeerExtensionBits) SetBit(bit ExtensionBit, on bool) + func (pex PeerExtensionBits) GetBit(bit ExtensionBit) bool + func (pex PeerExtensionBits) String() string + func (pex PeerExtensionBits) SupportsDHT() bool + func (pex PeerExtensionBits) SupportsExtended() bool + func (pex PeerExtensionBits) SupportsFast() bool + type PexMsg struct + Added krpc.CompactIPv4NodeAddrs + Added6 krpc.CompactIPv6NodeAddrs + Added6Flags []PexPeerFlags + AddedFlags []PexPeerFlags + Dropped krpc.CompactIPv4NodeAddrs + Dropped6 krpc.CompactIPv6NodeAddrs + func LoadPexMsg(b []byte) (ret PexMsg, err error) + func (m *PexMsg) Len() int + func (m *PexMsg) Message(pexExtendedId ExtensionNumber) Message + type PexPeerFlags byte + const PexHolepunchSupport + const PexOutgoingConn + const PexPrefersEncryption + const PexSeedUploadOnly + const PexSupportsUtp + func (me PexPeerFlags) Get(f PexPeerFlags) bool + type RequestSpec struct + Begin Integer + Index Integer + Length Integer + func (me RequestSpec) String() string