From c317718d85c2881dad37dd009c4d690e599a2f34 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sun, 17 Jul 2016 01:32:17 +0200 Subject: BEP006 --- cmd/btcheck/main.go | 3 ++- peer/messages.go | 12 +++++++++++- tracker/messages.go | 9 +++++---- tracker/messages_test.go | 2 +- 4 files changed, 19 insertions(+), 7 deletions(-) diff --git a/cmd/btcheck/main.go b/cmd/btcheck/main.go index 7ed1997..680bd5b 100644 --- a/cmd/btcheck/main.go +++ b/cmd/btcheck/main.go @@ -41,5 +41,6 @@ func main() { if err != nil { log.Fatal(err) } - fmt.Printf("%+v\n", resp) + fmt.Println(resp.IntervalDuration()) + fmt.Println(resp.PeerAddr()) } diff --git a/peer/messages.go b/peer/messages.go index a6f2815..b2bbfc2 100644 --- a/peer/messages.go +++ b/peer/messages.go @@ -14,8 +14,18 @@ const ( Request // request: Piece // piece: Cancel // cancel: - Port // port: + Port // port: DHT _ // keep-alive: + _ + _ + Suggset + HaveAll + HaveNone + Reject + AllowedFast + _ + _ + LTEPHandshake ) const Proto = `BitTorrent protocol` diff --git a/tracker/messages.go b/tracker/messages.go index 00b1b86..5f96286 100644 --- a/tracker/messages.go +++ b/tracker/messages.go @@ -4,7 +4,6 @@ import ( "bytes" "encoding/binary" "io/ioutil" - "log" "net" "net/http" "time" @@ -59,7 +58,6 @@ func (r Request) Get(announce string) (Response, error) { if err != nil { return fail(err) } - log.Println(announce + q) resp, err := http.Get(announce + q) if err != nil { return fail(err) @@ -70,7 +68,6 @@ func (r Request) Get(announce string) (Response, error) { if err != nil { return fail(err) } - log.Println(string(body)) var res Response err = bencode.Unmarshal(body, &res) @@ -84,7 +81,11 @@ func (r Response) IntervalDuration() time.Duration { return time.Duration(r.Interval) * time.Second } -func ParseAddr(b []byte) ([]*net.TCPAddr, error) { +func (r Response) PeerAddr() ([]*net.TCPAddr, error) { + return peerAddr(r.Peers) +} + +func peerAddr(b []byte) ([]*net.TCPAddr, error) { n := len(b) / 6 a := make([]*net.TCPAddr, n) diff --git a/tracker/messages_test.go b/tracker/messages_test.go index aab9f4d..fa47604 100644 --- a/tracker/messages_test.go +++ b/tracker/messages_test.go @@ -31,7 +31,7 @@ var peers = []byte{ } func TestParsePeers(t *testing.T) { - addrs, err := ParseAddr(peers) + addrs, err := peerAddr(peers) if err != nil { t.Error(err) } -- cgit v1.2.3