Skip to content

Commit d77ff0d

Browse files
committed
use uint64 as package length
1 parent 81f8ceb commit d77ff0d

File tree

3 files changed

+15
-7
lines changed

3 files changed

+15
-7
lines changed

pkg/spec/decode.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,12 @@ func FromBytes(buf []byte) (p *Packet, err error) {
3131
if err != nil {
3232
return nil, err
3333
}
34-
p.Length = int(length)
34+
p.Length = length
3535
p.lenbuf = buf[pos:cursor]
3636
pos = cursor
3737

3838
// read Value bytes
39-
cursor = pos + p.Length
39+
cursor = pos + int(p.Length)
4040
if cursor > len(buf) {
4141
return nil, errors.New("malformed valbuf")
4242
}
@@ -111,7 +111,7 @@ func (p *Packet) GetValueAsInt64() (int64, error) {
111111
// GetValueAsFloat32 decode value as uint32
112112
func (p *Packet) GetValueAsFloat32() (float32, error) {
113113
var val float32
114-
codec := encoding.VarCodec{Size: p.Length}
114+
codec := encoding.VarCodec{Size: int(p.Length)}
115115
err := codec.DecodeVarFloat32(p.valbuf, &val)
116116
return val, err
117117
}
@@ -128,7 +128,7 @@ func (p *Packet) GetValueAsBool() (bool, error) {
128128
// GetValueAsFloat64 decode value as float64
129129
func (p *Packet) GetValueAsFloat64() (float64, error) {
130130
var val float64
131-
codec := encoding.VarCodec{Size: p.Length}
131+
codec := encoding.VarCodec{Size: int(p.Length)}
132132
err := codec.DecodeVarFloat64(p.valbuf, &val)
133133
return val, err
134134
}

pkg/spec/encode.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,20 @@ import (
66

77
// NewPacket create new Packet object
88
func NewPacket(sid uint64) (*Packet, error) {
9-
var p = &Packet{Tag: sid}
9+
var p = &Packet{}
1010
tmp, err := writePVarUInt64Buffer(sid)
1111
p.tagbuf = tmp
1212
return p, err
1313
}
1414

15+
// NewRawPacket create new Packet object with
16+
func NewRawPacket(rawID []byte) (*Packet, error) {
17+
// TODO, validate rawID
18+
var p = &Packet{}
19+
p.tagbuf = rawID
20+
return p, nil
21+
}
22+
1523
func (p *Packet) setLengthBuffer() error {
1624
len := uint64(p.Length)
1725
tmp, err := writePVarUInt64Buffer(len)
@@ -141,7 +149,7 @@ func (p *Packet) AddNode(child *Packet) (*Packet, error) {
141149

142150
// Encode return whole bytes of this packet
143151
func (p *Packet) Encode() ([]byte, error) {
144-
p.Length = len(p.valbuf)
152+
p.Length = uint64(len(p.valbuf))
145153
err := p.setLengthBuffer()
146154
if err != nil {
147155
return nil, err

pkg/spec/packet.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package spec
33
// Packet is a TLV group
44
type Packet struct {
55
Tag uint64
6-
Length int
6+
Length uint64
77
tagbuf []byte
88
lenbuf []byte
99
valbuf []byte

0 commit comments

Comments
 (0)