aboutsummaryrefslogtreecommitdiff
path: root/meta/tracker.go
blob: b56fe9204cd2ee946d60c318861dad3ecee45d6a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package meta

import "net"

type Event string

const (
	NoEvent   Event = ""
	Started   Event = "started"
	Stopped   Event = "stopped"
	Completed Event = "completed"
)

type TrackerRequest struct {
	InfoHash   []byte // info_hash
	PeerID     []byte // peer_id
	Port       int
	Uploaded   int
	Downloaded int
	Left       int
	Compact    bool
	NoPeerID   bool
	Event      Event
	IP         net.IPAddr
	NumWant    int
	Key        []byte
	TrackerID  []byte
}

type TrackerResponse struct {
	FalureReason   string `bencode:"failure reason"`
	WarningMessage string `bencode:"warning message"`
	Interval       int    `bencode:"interval"`
	MinInterval    int    `bencode:"min interval"`
	TrackerId      string `bencode:"tracker id"`
	Complete       int    `bencode:"complete"`
	Incomplete     int    `bencode:"incomplete"`
	Peers          Peer   `bencode:"peers"`
}

type Peer struct {
	PeerId string `bencode:"peer id"`
	IP     string `bencode:"ip"`
	Port   string `bencode:"ports"`
}

// Peer (compact) []byte