Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Open sidebar
dms3
go-bitswap
Commits
21d88348
Unverified
Commit
21d88348
authored
4 years ago
by
Steven Allen
Committed by
GitHub
4 years ago
Browse files
Options
Browse Files
Download
Plain Diff
Merge pull request #308 from ipfs/feat/custom-cid-type
feat: add a custom CID type
parents
f6db5f77
4b91e9be
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
137 additions
and
135 deletions
+137
-135
message/message.go
message/message.go
+12
-14
message/message_test.go
message/message_test.go
+2
-2
message/pb/cid.go
message/pb/cid.go
+43
-0
message/pb/message.pb.go
message/pb/message.pb.go
+78
-117
message/pb/message.proto
message/pb/message.proto
+2
-2
No files found.
message/message.go
View file @
21d88348
...
...
@@ -2,7 +2,7 @@ package message
import
(
"encoding/binary"
"
fmt
"
"
errors
"
"io"
pb
"github.com/ipfs/go-bitswap/message/pb"
...
...
@@ -117,14 +117,15 @@ type Entry struct {
SendDontHave
bool
}
var
errCidMissing
=
errors
.
New
(
"missing cid"
)
func
newMessageFromProto
(
pbm
pb
.
Message
)
(
BitSwapMessage
,
error
)
{
m
:=
newMsg
(
pbm
.
Wantlist
.
Full
)
for
_
,
e
:=
range
pbm
.
Wantlist
.
Entries
{
c
,
err
:=
cid
.
Cast
([]
byte
(
e
.
Block
))
if
err
!=
nil
{
return
nil
,
fmt
.
Errorf
(
"incorrectly formatted cid in wantlist: %s"
,
err
)
if
!
e
.
Block
.
Cid
.
Defined
()
{
return
nil
,
errCidMissing
}
m
.
addEntry
(
c
,
e
.
Priority
,
e
.
Cancel
,
e
.
WantType
,
e
.
SendDontHave
)
m
.
addEntry
(
e
.
Block
.
Cid
,
e
.
Priority
,
e
.
Cancel
,
e
.
WantType
,
e
.
SendDontHave
)
}
// deprecated
...
...
@@ -155,13 +156,10 @@ func newMessageFromProto(pbm pb.Message) (BitSwapMessage, error) {
}
for
_
,
bi
:=
range
pbm
.
GetBlockPresences
()
{
c
,
err
:=
cid
.
Cast
(
bi
.
GetCid
())
if
err
!=
nil
{
return
nil
,
err
if
!
bi
.
Cid
.
Cid
.
Defined
()
{
return
nil
,
errCidMissing
}
t
:=
bi
.
GetType
()
m
.
AddBlockPresence
(
c
,
t
)
m
.
AddBlockPresence
(
bi
.
Cid
.
Cid
,
bi
.
Type
)
}
m
.
pendingBytes
=
pbm
.
PendingBytes
...
...
@@ -311,7 +309,7 @@ func (m *impl) Size() int {
func
BlockPresenceSize
(
c
cid
.
Cid
)
int
{
return
(
&
pb
.
Message_BlockPresence
{
Cid
:
c
.
Bytes
()
,
Cid
:
pb
.
Cid
{
Cid
:
c
}
,
Type
:
pb
.
Message_Have
,
})
.
Size
()
}
...
...
@@ -341,7 +339,7 @@ func FromMsgReader(r msgio.Reader) (BitSwapMessage, error) {
func
entryToPB
(
e
*
Entry
)
pb
.
Message_Wantlist_Entry
{
return
pb
.
Message_Wantlist_Entry
{
Block
:
e
.
Cid
.
Bytes
()
,
Block
:
pb
.
Cid
{
Cid
:
e
.
Cid
}
,
Priority
:
int32
(
e
.
Priority
),
Cancel
:
e
.
Cancel
,
WantType
:
e
.
WantType
,
...
...
@@ -385,7 +383,7 @@ func (m *impl) ToProtoV1() *pb.Message {
pbm
.
BlockPresences
=
make
([]
pb
.
Message_BlockPresence
,
0
,
len
(
m
.
blockPresences
))
for
c
,
t
:=
range
m
.
blockPresences
{
pbm
.
BlockPresences
=
append
(
pbm
.
BlockPresences
,
pb
.
Message_BlockPresence
{
Cid
:
c
.
Bytes
()
,
Cid
:
pb
.
Cid
{
Cid
:
c
}
,
Type
:
t
,
})
}
...
...
This diff is collapsed.
Click to expand it.
message/message_test.go
View file @
21d88348
...
...
@@ -29,7 +29,7 @@ func TestNewMessageFromProto(t *testing.T) {
str
:=
mkFakeCid
(
"a_key"
)
protoMessage
:=
new
(
pb
.
Message
)
protoMessage
.
Wantlist
.
Entries
=
[]
pb
.
Message_Wantlist_Entry
{
{
Block
:
str
.
Bytes
()
},
{
Block
:
pb
.
Cid
{
Cid
:
str
}
},
}
if
!
wantlistContains
(
&
protoMessage
.
Wantlist
,
str
)
{
t
.
Fail
()
...
...
@@ -164,7 +164,7 @@ func TestToAndFromNetMessage(t *testing.T) {
func
wantlistContains
(
wantlist
*
pb
.
Message_Wantlist
,
c
cid
.
Cid
)
bool
{
for
_
,
e
:=
range
wantlist
.
GetEntries
()
{
if
bytes
.
Equal
(
e
.
Get
Block
(),
c
.
Bytes
()
)
{
if
e
.
Block
.
Cid
.
Defined
()
&&
c
.
Equal
s
(
e
.
Block
.
Cid
)
{
return
true
}
}
...
...
This diff is collapsed.
Click to expand it.
message/pb/cid.go
0 → 100644
View file @
21d88348
package
bitswap_message_pb
import
(
"github.com/ipfs/go-cid"
)
// NOTE: Don't "embed" the cid, wrap it like we're doing here. Otherwise, gogo
// will try to use the Bytes() function.
// Cid is a custom type for CIDs in protobufs, that allows us to avoid
// reallocating.
type
Cid
struct
{
Cid
cid
.
Cid
}
func
(
c
Cid
)
Marshal
()
([]
byte
,
error
)
{
return
c
.
Cid
.
Bytes
(),
nil
}
func
(
c
*
Cid
)
MarshalTo
(
data
[]
byte
)
(
int
,
error
)
{
return
copy
(
data
[
:
c
.
Size
()],
c
.
Cid
.
Bytes
()),
nil
}
func
(
c
*
Cid
)
Unmarshal
(
data
[]
byte
)
(
err
error
)
{
c
.
Cid
,
err
=
cid
.
Cast
(
data
)
return
err
}
func
(
c
*
Cid
)
Size
()
int
{
return
len
(
c
.
Cid
.
KeyString
())
}
func
(
c
Cid
)
MarshalJSON
()
([]
byte
,
error
)
{
return
c
.
Cid
.
MarshalJSON
()
}
func
(
c
*
Cid
)
UnmarshalJSON
(
data
[]
byte
)
error
{
return
c
.
Cid
.
UnmarshalJSON
(
data
)
}
func
(
c
Cid
)
Equal
(
other
Cid
)
bool
{
return
c
.
Cid
.
Equals
(
c
.
Cid
)
}
This diff is collapsed.
Click to expand it.
message/pb/message.pb.go
View file @
21d88348
...
...
@@ -21,7 +21,7 @@ var _ = math.Inf
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion
2
// please upgrade the proto package
const _ = proto.GoGoProtoPackageIsVersion
3
// please upgrade the proto package
type Message_BlockPresenceType int32
...
...
@@ -202,7 +202,7 @@ func (m *Message_Wantlist) GetFull() bool {
}
type Message_Wantlist_Entry struct {
Block
[]byte
`protobuf:"bytes,1,opt,name=block,proto3" json:"block
,omitempty
"`
Block
Cid
`protobuf:"bytes,1,opt,name=block,proto3
,customtype=Cid
" json:"block"`
Priority int32 `protobuf:"varint,2,opt,name=priority,proto3" json:"priority,omitempty"`
Cancel bool `protobuf:"varint,3,opt,name=cancel,proto3" json:"cancel,omitempty"`
WantType Message_Wantlist_WantType `protobuf:"varint,4,opt,name=wantType,proto3,enum=bitswap.message.pb.Message_Wantlist_WantType" json:"wantType,omitempty"`
...
...
@@ -242,13 +242,6 @@ func (m *Message_Wantlist_Entry) XXX_DiscardUnknown() {
var xxx_messageInfo_Message_Wantlist_Entry proto.InternalMessageInfo
func (m *Message_Wantlist_Entry) GetBlock() []byte {
if m != nil {
return m.Block
}
return nil
}
func (m *Message_Wantlist_Entry) GetPriority() int32 {
if m != nil {
return m.Priority
...
...
@@ -330,7 +323,7 @@ func (m *Message_Block) GetData() []byte {
}
type Message_BlockPresence struct {
Cid
[]byte
`protobuf:"bytes,1,opt,name=cid,proto3" json:"cid
,omitempty
"`
Cid
Cid
`protobuf:"bytes,1,opt,name=cid,proto3
,customtype=Cid
" json:"cid"`
Type Message_BlockPresenceType `protobuf:"varint,2,opt,name=type,proto3,enum=bitswap.message.pb.Message_BlockPresenceType" json:"type,omitempty"`
}
...
...
@@ -367,13 +360,6 @@ func (m *Message_BlockPresence) XXX_DiscardUnknown() {
var xxx_messageInfo_Message_BlockPresence proto.InternalMessageInfo
func (m *Message_BlockPresence) GetCid() []byte {
if m != nil {
return m.Cid
}
return nil
}
func (m *Message_BlockPresence) GetType() Message_BlockPresenceType {
if m != nil {
return m.Type
...
...
@@ -394,38 +380,39 @@ func init() {
func init() { proto.RegisterFile("message.proto", fileDescriptor_33c57e4bae7b9afd) }
var fileDescriptor_33c57e4bae7b9afd = []byte{
// 483 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x53, 0x4d, 0x6b, 0xd4, 0x50,
0x14, 0xcd, 0x9b, 0x24, 0x9d, 0x78, 0x9b, 0x96, 0xf1, 0x21, 0xf2, 0xc8, 0x22, 0x8d, 0x83, 0x8b,
0xa8, 0x34, 0x85, 0xe9, 0x2f, 0xe8, 0xa0, 0xa2, 0x82, 0x20, 0x41, 0x98, 0x75, 0x3e, 0xde, 0xc4,
0x60, 0x9a, 0x84, 0xbc, 0x37, 0xd6, 0xfc, 0x0b, 0x7f, 0x92, 0xb8, 0xea, 0x4a, 0xba, 0x74, 0x25,
0x32, 0xf3, 0x47, 0x24, 0x37, 0x2f, 0x81, 0xb1, 0x60, 0xbb, 0xbb, 0xe7, 0xbe, 0x7b, 0x4e, 0xee,
0xb9, 0x87, 0xc0, 0xd1, 0x25, 0x17, 0x22, 0xca, 0x78, 0x50, 0x37, 0x95, 0xac, 0x28, 0x8d, 0x73,
0x29, 0xae, 0xa2, 0x3a, 0x18, 0xdb, 0xb1, 0x73, 0x9a, 0xe5, 0xf2, 0xd3, 0x26, 0x0e, 0x92, 0xea,
0xf2, 0x2c, 0xab, 0xb2, 0xea, 0x0c, 0x47, 0xe3, 0xcd, 0x1a, 0x11, 0x02, 0xac, 0x7a, 0x89, 0xf9,
0x8f, 0x03, 0x98, 0xbe, 0xef, 0xd9, 0xf4, 0x35, 0x58, 0x57, 0x51, 0x29, 0x8b, 0x5c, 0x48, 0x46,
0x3c, 0xe2, 0x1f, 0x2e, 0x9e, 0x06, 0xb7, 0xbf, 0x10, 0xa8, 0xf1, 0x60, 0xa5, 0x66, 0x97, 0xc6,
0xf5, 0xef, 0x13, 0x2d, 0x1c, 0xb9, 0xf4, 0x31, 0x1c, 0xc4, 0x45, 0x95, 0x7c, 0x16, 0x6c, 0xe2,
0xe9, 0xbe, 0x1d, 0x2a, 0x44, 0x2f, 0x60, 0x5a, 0x47, 0x6d, 0x51, 0x45, 0x29, 0xd3, 0x3d, 0xdd,
0x3f, 0x5c, 0x3c, 0xf9, 0x9f, 0xfc, 0xb2, 0x23, 0x29, 0xed, 0x81, 0x47, 0x57, 0x70, 0x8c, 0x62,
0x1f, 0x1a, 0x2e, 0x78, 0x99, 0x70, 0xc1, 0x0c, 0x54, 0x7a, 0x76, 0xa7, 0xd2, 0xc0, 0x50, 0x8a,
0xff, 0xc8, 0xd0, 0x39, 0xd8, 0x35, 0x2f, 0xd3, 0xbc, 0xcc, 0x96, 0xad, 0xe4, 0x82, 0x99, 0x1e,
0xf1, 0xcd, 0x70, 0xaf, 0xe7, 0xfc, 0x9c, 0x80, 0x35, 0x98, 0xa6, 0xef, 0x60, 0xca, 0x4b, 0xd9,
0xe4, 0x5c, 0x30, 0x82, 0x2b, 0x3c, 0xbf, 0xcf, 0xad, 0x82, 0x57, 0xa5, 0x6c, 0xda, 0xc1, 0x95,
0x12, 0xa0, 0x14, 0x8c, 0xf5, 0xa6, 0x28, 0xd8, 0xc4, 0x23, 0xbe, 0x15, 0x62, 0xed, 0x7c, 0x27,
0x60, 0xe2, 0x30, 0x7d, 0x04, 0x26, 0x2e, 0x8b, 0x99, 0xd8, 0x61, 0x0f, 0xa8, 0x03, 0x56, 0xdd,
0xe4, 0x55, 0x93, 0xcb, 0x16, 0x79, 0x66, 0x38, 0xe2, 0x2e, 0x80, 0x24, 0x2a, 0x13, 0x5e, 0x30,
0x1d, 0x15, 0x15, 0xa2, 0x6f, 0xfb, 0x80, 0x3f, 0xb6, 0x35, 0x67, 0x86, 0x47, 0xfc, 0xe3, 0xc5,
0xe9, 0xbd, 0x96, 0x5e, 0x29, 0x52, 0x38, 0xd2, 0xbb, 0x7b, 0x09, 0x5e, 0xa6, 0x2f, 0xab, 0x52,
0xbe, 0x89, 0xbe, 0x70, 0xbc, 0x97, 0x15, 0xee, 0xf5, 0xe6, 0x27, 0xfd, 0xb9, 0x70, 0xfe, 0x01,
0x98, 0x18, 0xc3, 0x4c, 0xa3, 0x16, 0x18, 0xdd, 0xf3, 0x8c, 0x38, 0xe7, 0xaa, 0xd9, 0x2d, 0x5c,
0x37, 0x7c, 0x9d, 0x7f, 0x55, 0x1e, 0x15, 0xea, 0x0e, 0x93, 0x46, 0x32, 0x42, 0x83, 0x76, 0x88,
0xb5, 0x93, 0xc2, 0xd1, 0x5e, 0xa0, 0x74, 0x06, 0x7a, 0x92, 0xa7, 0x8a, 0xd9, 0x95, 0xf4, 0x02,
0x0c, 0xd9, 0x79, 0x9c, 0xdc, 0xed, 0x71, 0x4f, 0x0a, 0x3d, 0x22, 0x75, 0xfe, 0x02, 0x1e, 0xde,
0x7a, 0x1a, 0x37, 0xd7, 0xa8, 0x0d, 0xd6, 0x60, 0x73, 0x46, 0x96, 0xec, 0x7a, 0xeb, 0x92, 0x9b,
0xad, 0x4b, 0xfe, 0x6c, 0x5d, 0xf2, 0x6d, 0xe7, 0x6a, 0x37, 0x3b, 0x57, 0xfb, 0xb5, 0x73, 0xb5,
0xf8, 0x00, 0xff, 0xb2, 0xf3, 0xbf, 0x01, 0x00, 0x00, 0xff, 0xff, 0xac, 0xa9, 0xf7, 0xab, 0xb9,
0x03, 0x00, 0x00,
// 497 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x93, 0xdf, 0x8a, 0xd3, 0x40,
0x14, 0xc6, 0x33, 0x4d, 0xd2, 0xc6, 0xd3, 0xee, 0x52, 0xe7, 0x42, 0x42, 0xc0, 0x34, 0x5b, 0xbc,
0x88, 0xca, 0x66, 0xa1, 0xfb, 0x04, 0x5b, 0xff, 0xa0, 0x82, 0x20, 0x83, 0xd0, 0xeb, 0xfc, 0x99,
0xd6, 0xc1, 0x6c, 0x12, 0x33, 0x53, 0xd7, 0xbe, 0x85, 0x8f, 0xb5, 0x37, 0xc2, 0x5e, 0x8a, 0xca,
0x22, 0xed, 0x8b, 0x48, 0x4e, 0xa6, 0x85, 0xba, 0xe2, 0xee, 0xdd, 0x9c, 0x33, 0xe7, 0xfb, 0x65,
0xbe, 0xef, 0x10, 0x38, 0x38, 0xe7, 0x52, 0xc6, 0x0b, 0x1e, 0x55, 0x75, 0xa9, 0x4a, 0x4a, 0x13,
0xa1, 0xe4, 0x45, 0x5c, 0x45, 0xbb, 0x76, 0xe2, 0x1d, 0x2f, 0x84, 0xfa, 0xb0, 0x4c, 0xa2, 0xb4,
0x3c, 0x3f, 0x59, 0x94, 0x8b, 0xf2, 0x04, 0x47, 0x93, 0xe5, 0x1c, 0x2b, 0x2c, 0xf0, 0xd4, 0x22,
0xc6, 0xbf, 0xba, 0xd0, 0x7b, 0xdb, 0xaa, 0xe9, 0x4b, 0x70, 0x2e, 0xe2, 0x42, 0xe5, 0x42, 0x2a,
0x97, 0x04, 0x24, 0xec, 0x4f, 0x1e, 0x45, 0x37, 0xbf, 0x10, 0xe9, 0xf1, 0x68, 0xa6, 0x67, 0xa7,
0xd6, 0xe5, 0xf5, 0xc8, 0x60, 0x3b, 0x2d, 0x7d, 0x00, 0xdd, 0x24, 0x2f, 0xd3, 0x8f, 0xd2, 0xed,
0x04, 0x66, 0x38, 0x60, 0xba, 0xa2, 0x67, 0xd0, 0xab, 0xe2, 0x55, 0x5e, 0xc6, 0x99, 0x6b, 0x06,
0x66, 0xd8, 0x9f, 0x1c, 0xfd, 0x0f, 0x3f, 0x6d, 0x44, 0x9a, 0xbd, 0xd5, 0xd1, 0x19, 0x1c, 0x22,
0xec, 0x5d, 0xcd, 0x25, 0x2f, 0x52, 0x2e, 0x5d, 0x0b, 0x49, 0x8f, 0x6f, 0x25, 0x6d, 0x15, 0x9a,
0xf8, 0x17, 0x86, 0x8e, 0x61, 0x50, 0xf1, 0x22, 0x13, 0xc5, 0x62, 0xba, 0x52, 0x5c, 0xba, 0x76,
0x40, 0x42, 0x9b, 0xed, 0xf5, 0xbc, 0x9f, 0x1d, 0x70, 0xb6, 0xa6, 0xe9, 0x1b, 0xe8, 0xf1, 0x42,
0xd5, 0x82, 0x4b, 0x97, 0xe0, 0x13, 0x9e, 0xdc, 0x25, 0xab, 0xe8, 0x45, 0xa1, 0xea, 0xd5, 0xd6,
0x95, 0x06, 0x50, 0x0a, 0xd6, 0x7c, 0x99, 0xe7, 0x6e, 0x27, 0x20, 0xa1, 0xc3, 0xf0, 0xec, 0x7d,
0x23, 0x60, 0xe3, 0x30, 0x3d, 0x02, 0x1b, 0x1f, 0x8b, 0x3b, 0x19, 0x4c, 0xfb, 0x8d, 0xf6, 0xc7,
0xf5, 0xc8, 0x7c, 0x26, 0x32, 0xd6, 0xde, 0x50, 0x0f, 0x9c, 0xaa, 0x16, 0x65, 0x2d, 0xd4, 0x0a,
0x21, 0x36, 0xdb, 0xd5, 0xcd, 0x36, 0xd2, 0xb8, 0x48, 0x79, 0xee, 0x9a, 0x88, 0xd7, 0x15, 0x7d,
0xdd, 0x6e, 0xfb, 0xfd, 0xaa, 0xe2, 0xae, 0x15, 0x90, 0xf0, 0x70, 0x72, 0x7c, 0x27, 0x07, 0x33,
0x2d, 0x62, 0x3b, 0x79, 0x13, 0x9e, 0xe4, 0x45, 0xf6, 0xbc, 0x2c, 0xd4, 0xab, 0xf8, 0x33, 0xc7,
0xf0, 0x1c, 0xb6, 0xd7, 0x1b, 0x8f, 0xda, 0xec, 0x70, 0xfe, 0x1e, 0xd8, 0xb8, 0x93, 0xa1, 0x41,
0x1d, 0xb0, 0x9a, 0xeb, 0x21, 0xf1, 0x4e, 0x75, 0xb3, 0x79, 0x70, 0x55, 0xf3, 0xb9, 0xf8, 0xd2,
0x1a, 0x66, 0xba, 0x6a, 0x52, 0xca, 0x62, 0x15, 0xa3, 0xc1, 0x01, 0xc3, 0xb3, 0xf7, 0x09, 0x0e,
0xf6, 0xb6, 0x4b, 0x1f, 0x82, 0x99, 0x8a, 0xec, 0x5f, 0x51, 0x35, 0x7d, 0x7a, 0x06, 0x96, 0x6a,
0x0c, 0x77, 0x6e, 0x37, 0xbc, 0xc7, 0x45, 0xc3, 0x28, 0x1d, 0x3f, 0x85, 0xfb, 0x37, 0xae, 0x76,
0x36, 0x0c, 0x3a, 0x00, 0x67, 0xeb, 0x79, 0x48, 0xa6, 0xee, 0xe5, 0xda, 0x27, 0x57, 0x6b, 0x9f,
0xfc, 0x5e, 0xfb, 0xe4, 0xeb, 0xc6, 0x37, 0xae, 0x36, 0xbe, 0xf1, 0x7d, 0xe3, 0x1b, 0x49, 0x17,
0xff, 0xbf, 0xd3, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x8a, 0x8a, 0xaf, 0x83, 0xd3, 0x03, 0x00,
0x00,
}
func (m *Message) Marshal() (dAtA []byte, err error) {
...
...
@@ -600,13 +587,16 @@ func (m *Message_Wantlist_Entry) MarshalToSizedBuffer(dAtA []byte) (int, error)
i--
dAtA[i] = 0x10
}
if len(m.Block) > 0 {
i -= len(m.Block)
copy(dAtA[i:], m.Block)
i = encodeVarintMessage(dAtA, i, uint64(len(m.Block)))
i--
dAtA[i] = 0xa
{
size := m.Block.Size()
i -= size
if _, err := m.Block.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintMessage(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
...
...
@@ -672,13 +662,16 @@ func (m *Message_BlockPresence) MarshalToSizedBuffer(dAtA []byte) (int, error) {
i--
dAtA[i] = 0x10
}
if len(m.Cid) > 0 {
i -= len(m.Cid)
copy(dAtA[i:], m.Cid)
i = encodeVarintMessage(dAtA, i, uint64(len(m.Cid)))
i--
dAtA[i] = 0xa
{
size := m.Cid.Size()
i -= size
if _, err := m.Cid.MarshalTo(dAtA[i:]); err != nil {
return 0, err
}
i = encodeVarintMessage(dAtA, i, uint64(size))
}
i--
dAtA[i] = 0xa
return len(dAtA) - i, nil
}
...
...
@@ -749,10 +742,8 @@ func (m *Message_Wantlist_Entry) Size() (n int) {
}
var l int
_ = l
l = len(m.Block)
if l > 0 {
n += 1 + l + sovMessage(uint64(l))
}
l = m.Block.Size()
n += 1 + l + sovMessage(uint64(l))
if m.Priority != 0 {
n += 1 + sovMessage(uint64(m.Priority))
}
...
...
@@ -791,10 +782,8 @@ func (m *Message_BlockPresence) Size() (n int) {
}
var l int
_ = l
l = len(m.Cid)
if l > 0 {
n += 1 + l + sovMessage(uint64(l))
}
l = m.Cid.Size()
n += 1 + l + sovMessage(uint64(l))
if m.Type != 0 {
n += 1 + sovMessage(uint64(m.Type))
}
...
...
@@ -1177,9 +1166,8 @@ func (m *Message_Wantlist_Entry) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Block = append(m.Block[:0], dAtA[iNdEx:postIndex]...)
if m.Block == nil {
m.Block = []byte{}
if err := m.Block.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
...
...
@@ -1463,9 +1451,8 @@ func (m *Message_BlockPresence) Unmarshal(dAtA []byte) error {
if postIndex > l {
return io.ErrUnexpectedEOF
}
m.Cid = append(m.Cid[:0], dAtA[iNdEx:postIndex]...)
if m.Cid == nil {
m.Cid = []byte{}
if err := m.Cid.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
return err
}
iNdEx = postIndex
case 2:
...
...
@@ -1514,6 +1501,7 @@ func (m *Message_BlockPresence) Unmarshal(dAtA []byte) error {
func skipMessage(dAtA []byte) (n int, err error) {
l := len(dAtA)
iNdEx := 0
depth := 0
for iNdEx < l {
var wire uint64
for shift := uint(0); ; shift += 7 {
...
...
@@ -1545,10 +1533,8 @@ func skipMessage(dAtA []byte) (n int, err error) {
break
}
}
return iNdEx, nil
case 1:
iNdEx += 8
return iNdEx, nil
case 2:
var length int
for shift := uint(0); ; shift += 7 {
...
...
@@ -1569,55 +1555,30 @@ func skipMessage(dAtA []byte) (n int, err error) {
return 0, ErrInvalidLengthMessage
}
iNdEx += length
if iNdEx < 0 {
return 0, ErrInvalidLengthMessage
}
return iNdEx, nil
case 3:
for {
var innerWire uint64
var start int = iNdEx
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return 0, ErrIntOverflowMessage
}
if iNdEx >= l {
return 0, io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
innerWire |= (uint64(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
innerWireType := int(innerWire & 0x7)
if innerWireType == 4 {
break
}
next, err := skipMessage(dAtA[start:])
if err != nil {
return 0, err
}
iNdEx = start + next
if iNdEx < 0 {
return 0, ErrInvalidLengthMessage
}
}
return iNdEx, nil
depth++
case 4:
return iNdEx, nil
if depth == 0 {
return 0, ErrUnexpectedEndOfGroupMessage
}
depth--
case 5:
iNdEx += 4
return iNdEx, nil
default:
return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
}
if iNdEx < 0 {
return 0, ErrInvalidLengthMessage
}
if depth == 0 {
return iNdEx, nil
}
}
panic("unreachable")
return 0, io.ErrUnexpectedEOF
}
var (
ErrInvalidLengthMessage = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowMessage = fmt.Errorf("proto: integer overflow")
ErrInvalidLengthMessage = fmt.Errorf("proto: negative length found during unmarshaling")
ErrIntOverflowMessage = fmt.Errorf("proto: integer overflow")
ErrUnexpectedEndOfGroupMessage = fmt.Errorf("proto: unexpected end of group")
)
This diff is collapsed.
Click to expand it.
message/pb/message.proto
View file @
21d88348
...
...
@@ -13,7 +13,7 @@ message Message {
}
message
Entry
{
bytes
block
=
1
;
// the block cid (cidV0 in bitswap 1.0.0, cidV1 in bitswap 1.1.0)
bytes
block
=
1
[(
gogoproto.customtype
)
=
"Cid"
,
(
gogoproto.nullable
)
=
false
]
;
// the block cid (cidV0 in bitswap 1.0.0, cidV1 in bitswap 1.1.0)
int32
priority
=
2
;
// the priority (normalized). default to 1
bool
cancel
=
3
;
// whether this revokes an entry
WantType
wantType
=
4
;
// Note: defaults to enum 0, ie Block
...
...
@@ -34,7 +34,7 @@ message Message {
DontHave
=
1
;
}
message
BlockPresence
{
bytes
cid
=
1
;
bytes
cid
=
1
[(
gogoproto.customtype
)
=
"Cid"
,
(
gogoproto.nullable
)
=
false
]
;
BlockPresenceType
type
=
2
;
}
...
...
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment