mirror of
https://github.com/ossrs/srs.git
synced 2025-03-09 15:49:59 +00:00
TEST: Upgrade pion to v3.2.9. (#3567)
------ Co-authored-by: chundonglinlin <chundonglinlin@163.com>
This commit is contained in:
parent
104cf14d68
commit
df854339ea
1383 changed files with 118469 additions and 41421 deletions
35
trunk/3rdparty/srs-bench/vendor/github.com/pion/sctp/chunkheader.go
generated
vendored
35
trunk/3rdparty/srs-bench/vendor/github.com/pion/sctp/chunkheader.go
generated
vendored
|
@ -2,8 +2,8 @@ package sctp
|
|||
|
||||
import (
|
||||
"encoding/binary"
|
||||
|
||||
"github.com/pkg/errors"
|
||||
"errors"
|
||||
"fmt"
|
||||
)
|
||||
|
||||
/*
|
||||
|
@ -13,15 +13,15 @@ transmitted in the SCTP packet. Each chunk is formatted with a Chunk
|
|||
Type field, a chunk-specific Flag field, a Chunk Length field, and a
|
||||
Value field.
|
||||
|
||||
0 1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Chunk Type | Chunk Flags | Chunk Length |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| |
|
||||
| Chunk Value |
|
||||
| |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
0 1 2 3
|
||||
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| Chunk Type | Chunk Flags | Chunk Length |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
| |
|
||||
| Chunk Value |
|
||||
| |
|
||||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|
||||
*/
|
||||
type chunkHeader struct {
|
||||
typ chunkType
|
||||
|
@ -33,9 +33,16 @@ const (
|
|||
chunkHeaderSize = 4
|
||||
)
|
||||
|
||||
// SCTP chunk header errors
|
||||
var (
|
||||
ErrChunkHeaderTooSmall = errors.New("raw is too small for a SCTP chunk")
|
||||
ErrChunkHeaderNotEnoughSpace = errors.New("not enough data left in SCTP packet to satisfy requested length")
|
||||
ErrChunkHeaderPaddingNonZero = errors.New("chunk padding is non-zero at offset")
|
||||
)
|
||||
|
||||
func (c *chunkHeader) unmarshal(raw []byte) error {
|
||||
if len(raw) < chunkHeaderSize {
|
||||
return errors.Errorf("raw only %d bytes, %d is the minimum length for a SCTP chunk", len(raw), chunkHeaderSize)
|
||||
return fmt.Errorf("%w: raw only %d bytes, %d is the minimum length", ErrChunkHeaderTooSmall, len(raw), chunkHeaderSize)
|
||||
}
|
||||
|
||||
c.typ = chunkType(raw[0])
|
||||
|
@ -47,7 +54,7 @@ func (c *chunkHeader) unmarshal(raw []byte) error {
|
|||
lengthAfterValue := len(raw) - (chunkHeaderSize + valueLength)
|
||||
|
||||
if lengthAfterValue < 0 {
|
||||
return errors.Errorf("Not enough data left in SCTP packet to satisfy requested length remain %d req %d ", valueLength, len(raw)-chunkHeaderSize)
|
||||
return fmt.Errorf("%w: remain %d req %d ", ErrChunkHeaderNotEnoughSpace, valueLength, len(raw)-chunkHeaderSize)
|
||||
} else if lengthAfterValue < 4 {
|
||||
// https://tools.ietf.org/html/rfc4960#section-3.2
|
||||
// The Chunk Length field does not count any chunk padding.
|
||||
|
@ -61,7 +68,7 @@ func (c *chunkHeader) unmarshal(raw []byte) error {
|
|||
for i := lengthAfterValue; i > 0; i-- {
|
||||
paddingOffset := chunkHeaderSize + valueLength + (i - 1)
|
||||
if raw[paddingOffset] != 0 {
|
||||
return errors.Errorf("Chunk padding is non-zero at offset %d ", paddingOffset)
|
||||
return fmt.Errorf("%w: %d ", ErrChunkHeaderPaddingNonZero, paddingOffset)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue