mirror of
https://github.com/aler9/gortsplib
synced 2025-10-06 07:37:07 +08:00
update golangci-lint (#494)
This commit is contained in:
2
.github/workflows/lint.yml
vendored
2
.github/workflows/lint.yml
vendored
@@ -19,7 +19,7 @@ jobs:
|
||||
|
||||
- uses: golangci/golangci-lint-action@v3
|
||||
with:
|
||||
version: v1.55.0
|
||||
version: v1.55.2
|
||||
|
||||
go-mod-tidy:
|
||||
runs-on: ubuntu-20.04
|
||||
|
@@ -1,7 +1,10 @@
|
||||
linters:
|
||||
enable:
|
||||
- asciicheck
|
||||
- bidichk
|
||||
- bodyclose
|
||||
- dupl
|
||||
- errorlint
|
||||
- exportloopref
|
||||
- gochecknoinits
|
||||
- gocritic
|
||||
@@ -13,6 +16,7 @@ linters:
|
||||
- prealloc
|
||||
- revive
|
||||
- unconvert
|
||||
- tparallel
|
||||
- wastedassign
|
||||
- whitespace
|
||||
|
||||
|
2
Makefile
2
Makefile
@@ -1,5 +1,5 @@
|
||||
BASE_IMAGE = golang:1.21-alpine3.18
|
||||
LINT_IMAGE = golangci/golangci-lint:v1.55.0
|
||||
LINT_IMAGE = golangci/golangci-lint:v1.55.2
|
||||
|
||||
.PHONY: $(shell ls)
|
||||
|
||||
|
@@ -80,7 +80,7 @@ func (d *Session) Unmarshal(ssd *sdp.SessionDescription) error {
|
||||
var m Media
|
||||
err := m.Unmarshal(md)
|
||||
if err != nil {
|
||||
return fmt.Errorf("media %d is invalid: %v", i+1, err)
|
||||
return fmt.Errorf("media %d is invalid: %w", i+1, err)
|
||||
}
|
||||
|
||||
if m.ID != "" && hasMediaWithID(d.Medias[:i], m.ID) {
|
||||
|
@@ -53,7 +53,7 @@ func (f *H265) unmarshal(ctx *unmarshalContext) error {
|
||||
var spsp h265.SPS
|
||||
err = spsp.Unmarshal(f.SPS)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid SPS: %v", err)
|
||||
return fmt.Errorf("invalid SPS: %w", err)
|
||||
}
|
||||
|
||||
case "sprop-pps":
|
||||
@@ -69,7 +69,7 @@ func (f *H265) unmarshal(ctx *unmarshalContext) error {
|
||||
var ppsp h265.PPS
|
||||
err = ppsp.Unmarshal(f.PPS)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid PPS: %v", err)
|
||||
return fmt.Errorf("invalid PPS: %w", err)
|
||||
}
|
||||
|
||||
case "sprop-max-don-diff":
|
||||
|
@@ -141,7 +141,7 @@ func (f *MPEG4Audio) unmarshal(ctx *unmarshalContext) error {
|
||||
f.StreamMuxConfig = &mpeg4audio.StreamMuxConfig{}
|
||||
err = f.StreamMuxConfig.Unmarshal(enc)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid AAC config: %v", err)
|
||||
return fmt.Errorf("invalid AAC config: %w", err)
|
||||
}
|
||||
|
||||
case "sbr-enabled":
|
||||
|
@@ -46,7 +46,7 @@ func (f *MPEG4Video) unmarshal(ctx *unmarshalContext) error {
|
||||
|
||||
err = mpeg4video.IsValidConfig(f.Config)
|
||||
if err != nil {
|
||||
return fmt.Errorf("invalid config: %v", err)
|
||||
return fmt.Errorf("invalid config: %w", err)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package rtpac3
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/pion/rtp"
|
||||
@@ -24,7 +25,7 @@ func TestDecode(t *testing.T) {
|
||||
// test input integrity
|
||||
require.Equal(t, clone, pkt)
|
||||
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -52,7 +52,7 @@ func (d *Decoder) decodeOBUs(pkt *rtp.Packet) ([][]byte, error) {
|
||||
if err != nil {
|
||||
d.fragments = d.fragments[:0] // discard pending fragments
|
||||
d.fragmentsSize = 0
|
||||
return nil, fmt.Errorf("invalid header: %v", err)
|
||||
return nil, fmt.Errorf("invalid header: %w", err)
|
||||
}
|
||||
|
||||
for _, el := range av1header.OBUElements {
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package rtpav1
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/bluenviron/mediacommon/pkg/codecs/av1"
|
||||
@@ -19,7 +20,7 @@ func TestDecode(t *testing.T) {
|
||||
|
||||
for _, pkt := range ca.pkts {
|
||||
addOBUs, err := d.Decode(pkt)
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -2,6 +2,7 @@ package rtph264
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/bluenviron/mediacommon/pkg/codecs/h264"
|
||||
@@ -26,7 +27,7 @@ func TestDecode(t *testing.T) {
|
||||
// test input integrity
|
||||
require.Equal(t, clone, pkt)
|
||||
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package rtph265
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/bluenviron/mediacommon/pkg/codecs/h265"
|
||||
@@ -25,7 +26,7 @@ func TestDecode(t *testing.T) {
|
||||
// test input integrity
|
||||
require.Equal(t, clone, pkt)
|
||||
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package rtpmjpeg
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/pion/rtp"
|
||||
@@ -16,7 +17,7 @@ func TestDecode(t *testing.T) {
|
||||
|
||||
for _, pkt := range ca.pkts {
|
||||
image, err := d.Decode(pkt)
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -176,7 +176,7 @@ func (d *Decoder) removeADTS(aus [][]byte) ([][]byte, error) {
|
||||
var pkts mpeg4audio.ADTSPackets
|
||||
err := pkts.Unmarshal(aus[0])
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("unable to decode ADTS: %s", err)
|
||||
return nil, fmt.Errorf("unable to decode ADTS: %w", err)
|
||||
}
|
||||
|
||||
if len(pkts) != 1 {
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package rtpmpeg4audio
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/pion/rtp"
|
||||
@@ -28,7 +29,7 @@ func TestDecodeGeneric(t *testing.T) {
|
||||
// test input integrity
|
||||
require.Equal(t, clone, pkt)
|
||||
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package rtpmpeg4audio
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/pion/rtp"
|
||||
@@ -26,7 +27,7 @@ func TestDecodeLATM(t *testing.T) {
|
||||
// test input integrity
|
||||
require.Equal(t, clone, pkt)
|
||||
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package rtpmpeg4video
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"testing"
|
||||
|
||||
"github.com/pion/rtp"
|
||||
@@ -18,7 +19,7 @@ func TestDecode(t *testing.T) {
|
||||
|
||||
for _, pkt := range ca.pkts {
|
||||
frame, err = d.Decode(pkt)
|
||||
if err == ErrMorePacketsNeeded {
|
||||
if errors.Is(err, ErrMorePacketsNeeded) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
@@ -3,6 +3,7 @@ package gortsplib
|
||||
import (
|
||||
"context"
|
||||
"crypto/tls"
|
||||
"errors"
|
||||
"net"
|
||||
gourl "net/url"
|
||||
"strconv"
|
||||
@@ -384,7 +385,8 @@ func (sc *ServerConn) handleRequestOuter(req *base.Request) error {
|
||||
}
|
||||
|
||||
// add cseq
|
||||
if _, ok := err.(liberrors.ErrServerCSeqMissing); !ok {
|
||||
var eerr liberrors.ErrServerCSeqMissing
|
||||
if !errors.As(err, &eerr) {
|
||||
res.Header["CSeq"] = req.Header["CSeq"]
|
||||
}
|
||||
|
||||
|
@@ -1,6 +1,7 @@
|
||||
package gortsplib
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"sync/atomic"
|
||||
"time"
|
||||
|
||||
@@ -8,17 +9,17 @@ import (
|
||||
"github.com/bluenviron/gortsplib/v4/pkg/liberrors"
|
||||
)
|
||||
|
||||
type errSwitchReadFunc struct {
|
||||
type switchReadFuncError struct {
|
||||
tcp bool
|
||||
}
|
||||
|
||||
func (errSwitchReadFunc) Error() string {
|
||||
func (switchReadFuncError) Error() string {
|
||||
return "switching read function"
|
||||
}
|
||||
|
||||
func isErrSwitchReadFunc(err error) bool {
|
||||
_, ok := err.(errSwitchReadFunc)
|
||||
return ok
|
||||
func isSwitchReadFuncError(err error) bool {
|
||||
var eerr switchReadFuncError
|
||||
return errors.As(err, &eerr)
|
||||
}
|
||||
|
||||
type serverConnReader struct {
|
||||
@@ -44,8 +45,9 @@ func (cr *serverConnReader) run() {
|
||||
|
||||
for {
|
||||
err := readFunc()
|
||||
if err, ok := err.(errSwitchReadFunc); ok {
|
||||
if err.tcp {
|
||||
var eerr switchReadFuncError
|
||||
if errors.As(err, &eerr) {
|
||||
if eerr.tcp {
|
||||
readFunc = cr.readFuncTCP
|
||||
} else {
|
||||
readFunc = cr.readFuncStandard
|
||||
|
@@ -403,7 +403,7 @@ func (ss *ServerSession) runInner() error {
|
||||
|
||||
returnedSession := ss
|
||||
|
||||
if err == nil || isErrSwitchReadFunc(err) {
|
||||
if err == nil || isSwitchReadFuncError(err) {
|
||||
// ANNOUNCE responses don't contain the session header.
|
||||
if req.req.Method != base.Announce &&
|
||||
req.req.Method != base.Teardown {
|
||||
@@ -444,7 +444,7 @@ func (ss *ServerSession) runInner() error {
|
||||
ss: returnedSession,
|
||||
}
|
||||
|
||||
if (err == nil || isErrSwitchReadFunc(err)) && savedMethod == base.Teardown {
|
||||
if (err == nil || isSwitchReadFuncError(err)) && savedMethod == base.Teardown {
|
||||
return liberrors.ErrServerSessionTornDown{Author: req.sc.NetConn().RemoteAddr()}
|
||||
}
|
||||
|
||||
@@ -951,7 +951,7 @@ func (ss *ServerSession) handleRequestInner(sc *ServerConn, req *base.Request) (
|
||||
|
||||
default: // TCP
|
||||
ss.tcpConn = sc
|
||||
err = errSwitchReadFunc{true}
|
||||
err = switchReadFuncError{true}
|
||||
// writer.start() is called by ServerConn after the response has been sent
|
||||
}
|
||||
|
||||
@@ -1034,7 +1034,7 @@ func (ss *ServerSession) handleRequestInner(sc *ServerConn, req *base.Request) (
|
||||
|
||||
default: // TCP
|
||||
ss.tcpConn = sc
|
||||
err = errSwitchReadFunc{true}
|
||||
err = switchReadFuncError{true}
|
||||
// runWriter() is called by conn after sending the response
|
||||
}
|
||||
|
||||
@@ -1089,7 +1089,7 @@ func (ss *ServerSession) handleRequestInner(sc *ServerConn, req *base.Request) (
|
||||
ss.udpCheckStreamTimer = emptyTimer()
|
||||
|
||||
default: // TCP
|
||||
err = errSwitchReadFunc{false}
|
||||
err = switchReadFuncError{false}
|
||||
ss.tcpConn = nil
|
||||
}
|
||||
|
||||
@@ -1099,7 +1099,7 @@ func (ss *ServerSession) handleRequestInner(sc *ServerConn, req *base.Request) (
|
||||
ss.udpCheckStreamTimer = emptyTimer()
|
||||
|
||||
default: // TCP
|
||||
err = errSwitchReadFunc{false}
|
||||
err = switchReadFuncError{false}
|
||||
ss.tcpConn = nil
|
||||
}
|
||||
|
||||
@@ -1112,7 +1112,7 @@ func (ss *ServerSession) handleRequestInner(sc *ServerConn, req *base.Request) (
|
||||
var err error
|
||||
if (ss.state == ServerSessionStatePlay || ss.state == ServerSessionStateRecord) &&
|
||||
*ss.setuppedTransport == TransportTCP {
|
||||
err = errSwitchReadFunc{false}
|
||||
err = switchReadFuncError{false}
|
||||
}
|
||||
|
||||
return &base.Response{
|
||||
|
Reference in New Issue
Block a user