]> Sergey Matveev's repositories - btrtrc.git/commitdiff
Move compactPeers type to util package
authorMatt Joiner <anacrolix@gmail.com>
Thu, 3 Jul 2014 15:41:46 +0000 (01:41 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Thu, 3 Jul 2014 15:41:46 +0000 (01:41 +1000)
client.go
util/types.go [new file with mode: 0644]

index f7ef9291a31c43816567754feb3288907173a2a7..349914d5923bef26d6fe9d386061b7d08d272536 100644 (file)
--- a/client.go
+++ b/client.go
@@ -16,6 +16,7 @@ Simple example:
 package torrent
 
 import (
+       "bitbucket.org/anacrolix/go.torrent/util"
        "bufio"
        "container/list"
        "crypto/rand"
@@ -535,28 +536,9 @@ func (cl *Client) gotMetadataExtensionMsg(payload []byte, t *torrent, c *connect
 }
 
 type peerExchangeMessage struct {
-       Added      compactPeers   `bencode:"added"`
-       AddedFlags []byte         `bencode:"added.f"`
-       Dropped    []tracker.Peer `bencode:"dropped"`
-}
-
-type compactPeers []tracker.CompactPeer
-
-func (me *compactPeers) UnmarshalBencode(bb []byte) (err error) {
-       var b []byte
-       err = bencode.Unmarshal(bb, &b)
-       if err != nil {
-               return
-       }
-       for i := 0; i < len(b); i += 6 {
-               var p tracker.CompactPeer
-               err = p.UnmarshalBinary([]byte(b[i : i+6]))
-               if err != nil {
-                       return
-               }
-               *me = append(*me, p)
-       }
-       return
+       Added      util.CompactPeers `bencode:"added"`
+       AddedFlags []byte            `bencode:"added.f"`
+       Dropped    []tracker.Peer    `bencode:"dropped"`
 }
 
 func (me *Client) connectionLoop(t *torrent, c *connection) error {
diff --git a/util/types.go b/util/types.go
new file mode 100644 (file)
index 0000000..ec87462
--- /dev/null
@@ -0,0 +1,30 @@
+package util
+
+import (
+       "bitbucket.org/anacrolix/go.torrent/tracker"
+       "github.com/anacrolix/libtorgo/bencode"
+)
+
+type CompactPeers []tracker.CompactPeer
+
+func (me *CompactPeers) UnmarshalBencode(bb []byte) (err error) {
+       var b []byte
+       err = bencode.Unmarshal(bb, &b)
+       if err != nil {
+               return
+       }
+       err = me.UnmarshalBinary(b)
+       return
+}
+
+func (me *CompactPeers) UnmarshalBinary(b []byte) (err error) {
+       for i := 0; i < len(b); i += 6 {
+               var p tracker.CompactPeer
+               err = p.UnmarshalBinary([]byte(b[i : i+6]))
+               if err != nil {
+                       return
+               }
+               *me = append(*me, p)
+       }
+       return
+}