error message
This commit is contained in:
parent
43eb39a7ad
commit
83e1b54acc
8
go.sum
8
go.sum
|
@ -1,12 +1,4 @@
|
|||
git.viry.cc/gomod/glog v0.1.5 h1:FsZkGyjX5Y2uKU7GSPpw8lVHz0lPEkhEuwDlBwfY3DA=
|
||||
git.viry.cc/gomod/glog v0.1.5/go.mod h1:e4ndIpsVbkUwjvf/t5Gs3LJIjuJCw70r91cDGLiodqo=
|
||||
git.viry.cc/gomod/glog v0.2.0 h1:WWqZj/zAuJW3m7Hh+KX/AlCPKhxT4UzHS3geXBfF0Jw=
|
||||
git.viry.cc/gomod/glog v0.2.0/go.mod h1:e4ndIpsVbkUwjvf/t5Gs3LJIjuJCw70r91cDGLiodqo=
|
||||
git.viry.cc/gomod/glog v0.2.1 h1:61VQS+qTKiHrOfVUMXvvYTQQk8570Uqdi4rpOSvEqOA=
|
||||
git.viry.cc/gomod/glog v0.2.1/go.mod h1:e4ndIpsVbkUwjvf/t5Gs3LJIjuJCw70r91cDGLiodqo=
|
||||
git.viry.cc/gomod/util v1.7.4 h1:9w235shalFzvO4GOpwKSQUr5TpBZES/OQ+IxA6UQJ8I=
|
||||
git.viry.cc/gomod/util v1.7.4/go.mod h1:Xj6ihmOFklMvCRYHVACdNMbx742CehWL2d4teFMwbsY=
|
||||
git.viry.cc/gomod/util v1.8.2 h1:kms9rz2zOSnyDUimzKTqHsIlgh8R8lK2Rt4+o6Bmdis=
|
||||
git.viry.cc/gomod/util v1.8.2/go.mod h1:Xj6ihmOFklMvCRYHVACdNMbx742CehWL2d4teFMwbsY=
|
||||
git.viry.cc/gomod/util v1.10.3 h1:sxa5U+srRyX2nvxX4dlNP9qj7LA93dNwA7kRLoD7Bp8=
|
||||
git.viry.cc/gomod/util v1.10.3/go.mod h1:Xj6ihmOFklMvCRYHVACdNMbx742CehWL2d4teFMwbsY=
|
||||
|
|
13
package.go
13
package.go
|
@ -3,6 +3,7 @@ package protocol
|
|||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"fmt"
|
||||
|
||||
"git.viry.cc/gomod/glog"
|
||||
"git.viry.cc/gomod/util"
|
||||
|
@ -12,10 +13,6 @@ import (
|
|||
var prefix = [headLengthPrefix]uint8{0xff, 0x07, 0x55, 0x00}
|
||||
|
||||
var ErrorPackageIncomplete = errors.New("package incomplete")
|
||||
var ErrorUnsupportedVersion = errors.New("unsupported version")
|
||||
var ErrorWrongPrefix = errors.New("prefix does not match")
|
||||
var ErrorBrokenHead = errors.New("head crc32 checksum does not match")
|
||||
var ErrorBrokenData = errors.New("data crc32 checksum does not match")
|
||||
|
||||
// head中各部分的长度
|
||||
const (
|
||||
|
@ -199,7 +196,7 @@ func parsePackage(buf *bytes.Buffer) (*protocolPackage, error) {
|
|||
if buf.Bytes()[headOffsetVersion] != VERSION {
|
||||
glog.Trace("[protocol_package] unsupported version need %d got %d", VERSION, buf.Bytes()[headOffsetVersion])
|
||||
nextPackageHead(buf)
|
||||
return nil, ErrorUnsupportedVersion
|
||||
return nil, fmt.Errorf("unsupported version need %d got %d", VERSION, buf.Bytes()[headOffsetVersion])
|
||||
}
|
||||
// 开始判断是否为package并提取package
|
||||
if buf.Len() < packageHeadSize {
|
||||
|
@ -212,7 +209,7 @@ func parsePackage(buf *bytes.Buffer) (*protocolPackage, error) {
|
|||
if !bytes.Equal(prefix[:], head[headOffsetPrefix:headOffsetPrefix+headLengthPrefix]) {
|
||||
glog.Trace("[protocol_package] prefix does not match, need %v got %v", prefix, head[headOffsetPrefix:headOffsetPrefix+headLengthPrefix])
|
||||
nextPackageHead(buf)
|
||||
return nil, ErrorWrongPrefix
|
||||
return nil, fmt.Errorf("prefix does not match, need %v got %v", prefix, head[headOffsetPrefix:headOffsetPrefix+headLengthPrefix])
|
||||
}
|
||||
// 检查head是否完整,删除未知数据,寻找下一个package起始位置
|
||||
headChecksum := util.BytesSliceToUInt32(head[headOffsetCRC32Checksum : headOffsetCRC32Checksum+headLengthCRC32Checksum])
|
||||
|
@ -220,7 +217,7 @@ func parsePackage(buf *bytes.Buffer) (*protocolPackage, error) {
|
|||
if headChecksum != headCrc32 {
|
||||
glog.Trace("[protocol_package] head crc32 checksum does not match, need %d got %d", headChecksum, headCrc32)
|
||||
nextPackageHead(buf)
|
||||
return nil, ErrorBrokenHead
|
||||
return nil, fmt.Errorf("head crc32 checksum does not match, need %d got %d", headChecksum, headCrc32)
|
||||
}
|
||||
// 检查package是否完整,不完整则等待
|
||||
packageDataSize := util.BytesSliceToUInt32(head[headOffsetDataSize : headOffsetDataSize+headLengthDataSize])
|
||||
|
@ -254,7 +251,7 @@ func parsePackage(buf *bytes.Buffer) (*protocolPackage, error) {
|
|||
if pkg.dataCrc32 != dataCrc32 {
|
||||
glog.Trace("[protocol_package] data crc32 checksum does not match, need %d got %d", pkg.dataCrc32, dataCrc32)
|
||||
nextPackageHead(buf)
|
||||
return nil, ErrorBrokenData
|
||||
return nil, fmt.Errorf("data crc32 checksum does not match, need %d got %d", pkg.dataCrc32, dataCrc32)
|
||||
}
|
||||
return pkg, nil
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue