FedP2P/util/types.go

31 lines
576 B
Go
Raw Normal View History

2014-07-03 23:41:46 +08:00
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
}