aboutsummaryrefslogtreecommitdiff
path: root/tracker
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-06-21 20:33:08 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-06-21 20:33:08 +0200
commit18e305f4dee1ab643e173061e7b12112035a1bdc (patch)
tree1816e25e578999de5eaa6bf9a63b0d165d9f5634 /tracker
parentb3aa1635285e44f864846027efa53e074955185f (diff)
move
Diffstat (limited to 'tracker')
-rw-r--r--tracker/messages.go41
1 files changed, 41 insertions, 0 deletions
diff --git a/tracker/messages.go b/tracker/messages.go
new file mode 100644
index 0000000..8062eaf
--- /dev/null
+++ b/tracker/messages.go
@@ -0,0 +1,41 @@
+package tracker
+
+import "net"
+
+type Event string
+
+const (
+ NoEvent Event = ""
+ Started Event = "started"
+ Stopped Event = "stopped"
+ Completed Event = "completed"
+)
+
+type Request struct {
+ InfoHash []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"`
+ Compact bool `query:"compact,optional"` // always true
+ NoPeerID bool `query:"no_peer_id,optional"`
+ Event Event `query:"event,optional"`
+ IP net.IPAddr `query:"ip,optional"`
+ NumWant int `query:"numwant,optional"`
+ Key []byte `query:"key,optional"`
+ TrackerID []byte `query:"tracker_id,optional"`
+}
+
+// we support only compact mode
+type Response struct {
+ Complete int `bencode:"complete"`
+ FalureReason string `bencode:"failure reason"`
+ Incomplete int `bencode:"incomplete"`
+ Interval int `bencode:"interval"`
+ MinInterval int `bencode:"min interval"`
+ Peers []byte `bencode:"peers"`
+ Peers6 []byte `bencode:"peers6"`
+ TrackerId string `bencode:"tracker id"`
+ WarningMessage string `bencode:"warning message"`
+}