aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2016-07-17 01:32:17 +0200
committerDimitri Sokolyuk <demon@dim13.org>2016-07-17 01:32:17 +0200
commitc317718d85c2881dad37dd009c4d690e599a2f34 (patch)
tree2fc5429cd20bb17041ce4d80c0565a8c2272fe49
parent57ee0c7d2bd7f5a96895f6694d181e9f0a46f174 (diff)
BEP006
-rw-r--r--cmd/btcheck/main.go3
-rw-r--r--peer/messages.go12
-rw-r--r--tracker/messages.go9
-rw-r--r--tracker/messages_test.go2
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: <len=0013><id=6><index><begin><length>
Piece // piece: <len=0009+X><id=7><index><begin><block>
Cancel // cancel: <len=0013><id=8><index><begin><length>
- Port // port: <len=0003><id=9><listen-port>
+ Port // port: <len=0003><id=9><listen-port> DHT
_ // keep-alive: <len=0000>
+ _
+ _
+ 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)
}