From 21639564e73b34252d155e63f666b0e0767ec8a6 Mon Sep 17 00:00:00 2001 From: Brian Tiger Chow Date: Fri, 12 Sep 2014 19:08:52 -0700 Subject: [PATCH] feat(bitswap:msg) impl FromSwarm method --- bitswap/message.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/bitswap/message.go b/bitswap/message.go index 634b74adc..1a4eb450e 100644 --- a/bitswap/message.go +++ b/bitswap/message.go @@ -1,6 +1,8 @@ package bitswap import ( + proto "github.com/jbenet/go-ipfs/Godeps/_workspace/src/code.google.com/p/goprotobuf/proto" + blocks "github.com/jbenet/go-ipfs/blocks" nm "github.com/jbenet/go-ipfs/net/message" swarm "github.com/jbenet/go-ipfs/net/swarm" @@ -41,6 +43,15 @@ func (m *message) AppendBlock(b *blocks.Block) { m.pb.Blocks = append(m.pb.Blocks, b.Data) } +func FromSwarm(sms swarm.Message) (BitSwapMessage, error) { + var protoMsg PBMessage + err := proto.Unmarshal(sms.Data, &protoMsg) + if err != nil { + return nil, err + } + return newMessageFromProto(protoMsg), nil +} + func (m *message) ToProto() *PBMessage { cp := m.pb return &cp