extensions

package
v0.4.6 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 2, 2024 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

View Source
const I2PDHT = Extension("i2p_dht")

bittorrent extension for i2p's dht variant

View Source
const I2PPeerExchange = Extension("i2p_pex")

I2PPeerExchange is a BitTorrent Extension indicating we support PEX variant for i2p

View Source
const LokinetPeerExchange = Extension("ln_pex")

LokinetPeerExchange is a Bittorrent Extension indication we support Lokinet PEX

View Source
const UTData = 1

UTData msg_type for data

View Source
const UTMetaData = Extension("ut_metadata")

UTMetaData is the bittorrent extension for ut_metadata

View Source
const UTReject = 2

UTReject msg_type for reject messages

View Source
const UTRequest = 0

UTRequest msg_type for requests

View Source
const XDHT = Extension("xdht")

bittorrent extension for XD's dht variant over wire protocol

Variables

View Source
var ErrInvalidMessageID = errors.New("invalid message id")
View Source
var ErrInvalidSize = errors.New("invalid message size")

Functions

This section is empty.

Types

type Extension

type Extension string

Extension is a bittorrent extenension string

func (Extension) String

func (ex Extension) String() string

String gets extension as string

type Message

type Message struct {
	ID           uint8             `bencode:"-"`
	Version      string            `bencode:"v"` // handshake data
	Extensions   map[string]uint32 `bencode:"m"` // handshake data
	Payload      interface{}       `bencode:"-"`
	PayloadRaw   []byte            `bencode:"-"`
	MetainfoSize *uint32           `bencode:"metadata_size,omitempty"`
}

Message is a serializable BitTorrent extended options message

func FromWireMessage

func FromWireMessage(msg common.WireMessage) (opts Message, err error)

FromWireMessage loads an ExtendedOptions messgae from a BitTorrent wire message

func New

func New() Message

New creates new valid Message instance

func NewI2PPEX

func NewI2PPEX(id uint8, connected, disconnected []byte) Message

NewI2PPEX creates a new PEX message for i2p peers

func NewLNPEX

func NewLNPEX(id uint8, connected, disconnected []common.Peer) Message

NewLNPex creates a new PEX message for lokinet peers

func NewOur

func NewOur(sz uint32) Message

NewOur creates a new Message instance with metadata size set

func (Message) Copy

func (opts Message) Copy() Message

Copy makes a copy of this Message

func (Message) I2PPEX

func (opts Message) I2PPEX() bool

I2PPEX returns true if i2p PEX is supported

func (Message) IsSupported

func (opts Message) IsSupported(ext string) (has bool)

IsSupported returns true if an extension by its name is supported

func (Message) LNPEX

func (opts Message) LNPEX() bool

LNPEX returns true if we support lokinet pex

func (Message) Lookup

func (opts Message) Lookup(id uint8) (string, bool)

Lookup finds the extension name of the extension by id

func (Message) MetaData

func (opts Message) MetaData() bool

MetaData returns true if ut_metadata is supported

func (*Message) SetSupported

func (opts *Message) SetSupported(ext Extension)

SetSupported sets a bittorrent extension as supported

func (Message) ToWireMessage

func (opts Message) ToWireMessage() common.WireMessage

ToWireMessage serializes this ExtendedOptions to a BitTorrent wire message

func (Message) XDHT

func (opts Message) XDHT() bool

XDHT returns true if XHDT is supported

type MetaData

type MetaData struct {
	Type  int    `bencode:"msg_type"`
	Piece uint32 `bencode:"piece"`
	Size  uint32 `bencode:"total_size"`
	Data  []byte `bencode:"-"`
}

MetaData ut_metadata extension message

func ParseMetadata

func ParseMetadata(buff []byte) (md MetaData, err error)

ParseMetadata parses a MetaData from a byteslice

func (MetaData) Bytes

func (md MetaData) Bytes() []byte

Bytes serializes a MetaData to byteslice

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL