Browse Source

修复 bug

张富强 4 months ago
parent
commit
5d0f9cf910
2 changed files with 30 additions and 9 deletions
  1. 18 9
      tencent/tlv.go
  2. 12 0
      tencent/tlv_test.go

+ 18 - 9
tencent/tlv.go

@@ -4,61 +4,68 @@ type tlv struct{}
 
 var Tlv tlv
 
-func (t tlv) From(buf []byte, tlv uint16, val ...byte) {
+func (t tlv) From(buf []byte, tlv uint16, val ...byte) []byte {
 	j_len := len(val)
 	buf = append(buf, byte(tlv>>8), byte(tlv), byte(j_len>>8), byte(j_len))
 	buf = append(buf, val...)
+	return buf
 }
 
-func (t tlv) FromInt16(buf []byte, tlv uint16, val ...int16) {
+func (t tlv) FromInt16(buf []byte, tlv uint16, val ...int16) []byte {
 	j_len := len(val) * 2
 	buf = append(buf, byte(tlv>>8), byte(tlv), byte(j_len>>8), byte(j_len))
 	for _, j_val := range val {
 		buf = append(buf, byte(j_val>>8), byte(j_val))
 	}
+	return buf
 }
 
-func (t tlv) FromUint16(buf []byte, tlv uint16, val ...uint16) {
+func (t tlv) FromUint16(buf []byte, tlv uint16, val ...uint16) []byte {
 	j_len := len(val) * 2
 	buf = append(buf, byte(tlv>>8), byte(tlv), byte(j_len>>8), byte(j_len))
 	for _, j_val := range val {
 		buf = append(buf, byte(j_val>>8), byte(j_val))
 	}
+	return buf
 }
 
-func (t tlv) FromInt32(buf []byte, tlv uint16, val ...int32) {
+func (t tlv) FromInt32(buf []byte, tlv uint16, val ...int32) []byte {
 	j_len := len(val) * 4
 	buf = append(buf, byte(tlv>>8), byte(tlv), byte(j_len>>8), byte(j_len))
 	for _, j_val := range val {
 		buf = append(buf, byte(j_val>>24), byte(j_val>>16), byte(j_val>>8), byte(j_val))
 	}
+	return buf
 }
 
-func (t tlv) FromUint32(buf []byte, tlv uint16, val ...uint32) {
+func (t tlv) FromUint32(buf []byte, tlv uint16, val ...uint32) []byte {
 	j_len := len(val) * 4
 	buf = append(buf, byte(tlv>>8), byte(tlv), byte(j_len>>8), byte(j_len))
 	for _, j_val := range val {
 		buf = append(buf, byte(j_val>>24), byte(j_val>>16), byte(j_val>>8), byte(j_val))
 	}
+	return buf
 }
 
-func (t tlv) FromInt64(buf []byte, tlv uint16, val ...int64) {
+func (t tlv) FromInt64(buf []byte, tlv uint16, val ...int64) []byte {
 	j_len := len(val) * 8
 	buf = append(buf, byte(tlv>>8), byte(tlv), byte(j_len>>8), byte(j_len))
 	for _, j_val := range val {
 		buf = append(buf, byte(j_val>>56), byte(j_val>>48), byte(j_val>>40), byte(j_val>>32), byte(j_val>>24), byte(j_val>>16), byte(j_val>>8), byte(j_val))
 	}
+	return buf
 }
 
-func (t tlv) FromUint64(buf []byte, tlv uint16, val ...uint64) {
+func (t tlv) FromUint64(buf []byte, tlv uint16, val ...uint64) []byte {
 	j_len := len(val) * 8
 	buf = append(buf, byte(tlv>>8), byte(tlv), byte(j_len>>8), byte(j_len))
 	for _, j_val := range val {
 		buf = append(buf, byte(j_val>>56), byte(j_val>>48), byte(j_val>>40), byte(j_val>>32), byte(j_val>>24), byte(j_val>>16), byte(j_val>>8), byte(j_val))
 	}
+	return buf
 }
 
-func (t tlv) FromB(buf []byte, tlv uint16, val ...[]byte) {
+func (t tlv) FromB(buf []byte, tlv uint16, val ...[]byte) []byte {
 	var j_len int
 	for _, j_val := range val {
 		j_len += len(j_val)
@@ -67,9 +74,10 @@ func (t tlv) FromB(buf []byte, tlv uint16, val ...[]byte) {
 	for _, j_val := range val {
 		buf = append(buf, j_val...)
 	}
+	return buf
 }
 
-func (t tlv) FromS(buf []byte, tlv uint16, val ...string) {
+func (t tlv) FromS(buf []byte, tlv uint16, val ...string) []byte {
 	var j_len int
 	for _, j_val := range val {
 		j_len += len(j_val)
@@ -78,4 +86,5 @@ func (t tlv) FromS(buf []byte, tlv uint16, val ...string) {
 	for _, j_val := range val {
 		buf = append(buf, j_val...)
 	}
+	return buf
 }

+ 12 - 0
tencent/tlv_test.go

@@ -0,0 +1,12 @@
+package yu_tencent
+
+import (
+	"fmt"
+	"testing"
+)
+
+func TestTlv_From(t *testing.T) {
+	j_buf := make([]byte, 0, 128)
+	j_buf = Tlv.From(j_buf, 15, 1, 2, 3, 3, 5, 4)
+	fmt.Println(j_buf, len(j_buf), cap(j_buf))
+}