From 12418c5c5e523d664af70d578e86b4bb9ab97918 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 17 Jul 2016 17:01:49 +0200 Subject: wip, broken --- tracker/messages.go | 18 +++++++++--------- tracker/messages_test.go | 34 +++++++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 10 deletions(-) diff --git a/tracker/messages.go b/tracker/messages.go index d9871f9..d4b71d9 100644 --- a/tracker/messages.go +++ b/tracker/messages.go @@ -40,15 +40,15 @@ type Request struct { // 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"` // can be []byte or []Peer - Peers6 []byte `bencode:"peers6"` - TrackerId string `bencode:"tracker id"` - WarningMessage string `bencode:"warning message"` + Complete int `bencode:"complete"` + FalureReason string `bencode:"failure reason"` + Incomplete int `bencode:"incomplete"` + Interval time.Duration `bencode:"interval,seconds"` + MinInterval int `bencode:"min interval"` + 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 { diff --git a/tracker/messages_test.go b/tracker/messages_test.go index fa47604..5f7d2b3 100644 --- a/tracker/messages_test.go +++ b/tracker/messages_test.go @@ -1,6 +1,11 @@ package tracker -import "testing" +import ( + "io/ioutil" + "testing" + + "dim13.org/btget/bencode" +) var peers = []byte{ 111, 221, 44, 148, 32, 222, 195, 154, 163, 111, 42, 147, @@ -39,3 +44,30 @@ func TestParsePeers(t *testing.T) { t.Log(v) } } + +func TestParseResponseCompact(t *testing.T) { + body, err := ioutil.ReadFile("../examples/tr_resp.compact") + if err != nil { + t.Error(err) + } + var resp Response + err = bencode.Unmarshal(body, &resp) + if err != nil { + t.Error(err) + } + t.Logf("%+v", resp) +} + +func TestParseResponseVerbose(t *testing.T) { + t.Skip() + body, err := ioutil.ReadFile("../examples/tr_resp.verbose") + if err != nil { + t.Error(err) + } + var resp Response + err = bencode.Unmarshal(body, &resp) + if err != nil { + t.Error(err) + } + t.Log(resp) +} -- cgit v1.2.3