v0.1.3 Latest Latest

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

Go to latest
Published: Aug 26, 2019 License: Apache-2.0 Imports: 10 Imported by: 0



Copyright (c) 2016-2019 Uber Technologies, Inc.

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.



View Source
const (
	V1 = 1
	V2 = 2

Announce versionss.


View Source
var ErrDisabled = errors.New("announcing disabled")

ErrDisabled is returned when announce is disabled.


This section is empty.


type Client

type Client interface {
		d core.Digest,
		h core.InfoHash,
		complete bool,
		version int) ([]*core.PeerInfo, time.Duration, error)

Client defines a client for announcing and getting peers.

func Disabled

func Disabled() Client

Disabled returns a new DisabledClient.

func New

func New(pctx core.PeerContext, ring hashring.PassiveRing, tls *tls.Config) Client

New creates a new client.

type DisabledClient

type DisabledClient struct{}

DisabledClient rejects all announces. Suitable for origin peers which should not be announcing.

func (DisabledClient) Announce

func (c DisabledClient) Announce(
	d core.Digest, h core.InfoHash, complete bool, version int) ([]*core.PeerInfo, time.Duration, error)

Announce always returns error.

type Request

type Request struct {
	Name     string         `json:"name"`
	Digest   *core.Digest   `json:"digest"` // Optional (for now).
	InfoHash core.InfoHash  `json:"info_hash"`
	Peer     *core.PeerInfo `json:"peer"`

Request defines an announce request.

func (*Request) GetDigest

func (r *Request) GetDigest() (core.Digest, error)

GetDigest is a backwards compatible accessor of the request digest.

type Response

type Response struct {
	Peers    []*core.PeerInfo `json:"peers"`
	Interval time.Duration    `json:"interval"`

Response defines an announce response.

Jump to

Keyboard shortcuts

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