aboutsummaryrefslogtreecommitdiff
path: root/tracker
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-07-17 15:33:40 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-07-17 15:33:40 +0200
commit896f99551ce39387afb3ff14410c925b05eada0c (patch)
tree880893b83d19385ad119c02fe19759a17f46c668 /tracker
parent0fcc54967bdf43a90cfea3d65111893b6ab81ed9 (diff)
Some fields are mandatory
Diffstat (limited to 'tracker')
-rw-r--r--tracker/messages.go16
1 files changed, 11 insertions, 5 deletions
diff --git a/tracker/messages.go b/tracker/messages.go
index 2df0367..d9871f9 100644
--- a/tracker/messages.go
+++ b/tracker/messages.go
@@ -25,10 +25,10 @@ const (
type Request struct {
InfoHash [sha1.Size]byte `query:"info_hash"` // info_hash
PeerID []byte `query:"peer_id"` // peer_id
- Port int `query:"port,optional"`
- Uploaded int `query:"uploaded,optional"`
- Downloaded int `query:"downloaded,optional"`
- Left int `query:"left,optional"`
+ Port int `query:"port"`
+ Uploaded int `query:"uploaded"`
+ Downloaded int `query:"downloaded"`
+ Left int `query:"left"`
Compact bool `query:"compact,optional"` // always true
NoPeerID bool `query:"no_peer_id,optional"`
Event Event `query:"event,optional"`
@@ -45,12 +45,18 @@ type Response struct {
Incomplete int `bencode:"incomplete"`
Interval int `bencode:"interval"`
MinInterval int `bencode:"min interval"`
- Peers []byte `bencode:"peers"`
+ Peers []byte `bencode:"peers"` // can be []byte or []Peer
Peers6 []byte `bencode:"peers6"`
TrackerId string `bencode:"tracker id"`
WarningMessage string `bencode:"warning message"`
}
+type Peer struct {
+ IP net.IPAddr `bencode:"ip"`
+ ID []byte `bencode:"peer id"`
+ Port uint16 `bencode:"port"`
+}
+
func (r Request) Get(announce string) (Response, error) {
fail := func(err error) (Response, error) {
return Response{}, err