enable errcheck (#2201)

This commit is contained in:
Alessandro Ros
2023-08-13 16:38:23 +02:00
committed by GitHub
parent 7001164e2f
commit 659f19f8bb
36 changed files with 240 additions and 132 deletions
+38 -2
View File
@@ -15,13 +15,49 @@ linters:
- unconvert
- wastedassign
- whitespace
disable:
- errcheck
issues:
exclude-use-default: false
linters-settings:
errcheck:
exclude-functions:
- io.Copy
- (io.Closer).Close
- (io.Writer).Write
- (hash.Hash).Write
- (net.Conn).Close
- (net.Conn).SetReadDeadline
- (net.Conn).SetWriteDeadline
- (*net.TCPConn).SetKeepAlive
- (*net.TCPConn).SetKeepAlivePeriod
- (*net.TCPConn).SetNoDelay
- (net.Listener).Close
- (net.PacketConn).Close
- (net.PacketConn).SetReadDeadline
- (net.PacketConn).SetWriteDeadline
- (net/http.ResponseWriter).Write
- (*net/http.Server).Serve
- (*net/http.Server).ServeTLS
- (*net/http.Server).Shutdown
- os.Chdir
- os.Mkdir
- os.MkdirAll
- os.Remove
- os.RemoveAll
- os.Setenv
- os.Unsetenv
- (*os.File).WriteString
- (*os.File).Close
- (github.com/datarhei/gosrt.Conn).Close
- (github.com/datarhei/gosrt.Conn).SetReadDeadline
- (github.com/datarhei/gosrt.Conn).SetWriteDeadline
- (*github.com/bluenviron/gortsplib/v3.Client).Close
- (*github.com/bluenviron/gortsplib/v3.Server).Close
- (*github.com/bluenviron/gortsplib/v3.ServerSession).Close
- (*github.com/bluenviron/gortsplib/v3.ServerStream).Close
- (*github.com/bluenviron/gortsplib/v3.ServerConn).Close
govet:
enable-all: true
disable:
+4 -2
View File
@@ -45,7 +45,8 @@ func loadFromFile(fpath string, conf *Conf) (bool, error) {
// other configuration files are not
if fpath == "mediamtx.yml" || fpath == "rtsp-simple-server.yml" {
if _, err := os.Stat(fpath); errors.Is(err, os.ErrNotExist) {
conf.UnmarshalJSON(nil) // load defaults
// load defaults
conf.UnmarshalJSON(nil) //nolint:errcheck
return false, nil
}
}
@@ -294,7 +295,8 @@ func (conf *Conf) Check() error {
pconf := conf.Paths[name]
if pconf == nil {
pconf = &PathConf{}
pconf.UnmarshalJSON(nil) // fill defaults
// load defaults
pconf.UnmarshalJSON(nil) //nolint:errcheck
conf.Paths[name] = pconf
}
+2 -1
View File
@@ -117,7 +117,8 @@ func loadEnvInternal(env map[string]string, prefix string, rv reflect.Value) err
if nv == zero {
nv = reflect.New(rt.Elem().Elem())
if unm, ok := nv.Interface().(json.Unmarshaler); ok {
unm.UnmarshalJSON(nil) // load defaults
// load defaults
unm.UnmarshalJSON(nil) //nolint:errcheck
}
rv.SetMapIndex(reflect.ValueOf(mapKeyLower), nv)
}
+2 -2
View File
@@ -51,7 +51,7 @@ func New(confPath string) (*ConfWatcher, error) {
err = inner.Add(parentPath)
if err != nil {
inner.Close()
inner.Close() //nolint:errcheck
return nil, err
}
@@ -120,7 +120,7 @@ outer:
}
close(w.signal)
w.inner.Close()
w.inner.Close() //nolint:errcheck
}
// Watch returns a channel that is called after the configuration file has changed.
+2 -2
View File
@@ -236,7 +236,7 @@ func newAPI(
}
router := gin.New()
router.SetTrustedProxies(nil)
router.SetTrustedProxies(nil) //nolint:errcheck
group := router.Group("/")
@@ -387,7 +387,7 @@ func (a *api) onConfigPathsAdd(ctx *gin.Context) {
newConfPath := &conf.PathConf{}
// load default values
newConfPath.UnmarshalJSON([]byte("{}"))
newConfPath.UnmarshalJSON([]byte("{}")) //nolint:errcheck
fillStruct(newConfPath, in)
+18 -9
View File
@@ -265,13 +265,14 @@ func TestAPIPathsList(t *testing.T) {
require.NoError(t, err)
defer source.Close()
source.WritePacketRTP(media0, &rtp.Packet{
err = source.WritePacketRTP(media0, &rtp.Packet{
Header: rtp.Header{
Version: 2,
PayloadType: 96,
},
Payload: []byte{0x01, 0x02, 0x03, 0x04},
})
require.NoError(t, err)
var out pathList
httpRequest(t, hc, http.MethodGet, "http://localhost:9997/v2/paths/list", nil, &out)
@@ -618,7 +619,7 @@ func TestAPIProtocolList(t *testing.T) {
0x00, 0x00, 0x03, 0x00, 0xf0, 0x3c, 0x60, 0xc9, 0x20,
},*/
source.WritePacketRTP(medi, &rtp.Packet{
err = source.WritePacketRTP(medi, &rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: true,
@@ -632,6 +633,7 @@ func TestAPIProtocolList(t *testing.T) {
0x05,
},
})
require.NoError(t, err)
}
}()
@@ -654,7 +656,7 @@ func TestAPIProtocolList(t *testing.T) {
time.Sleep(500 * time.Millisecond)
source.WritePacketRTP(medi, &rtp.Packet{
err = source.WritePacketRTP(medi, &rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: true,
@@ -665,6 +667,7 @@ func TestAPIProtocolList(t *testing.T) {
},
Payload: []byte{0x01, 0x02, 0x03, 0x04},
})
require.NoError(t, err)
<-c.incomingTrack
@@ -686,7 +689,9 @@ func TestAPIProtocolList(t *testing.T) {
err = w.WriteH26x(track, 0, 0, true, [][]byte{{1}})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
time.Sleep(500 * time.Millisecond)
}
@@ -898,7 +903,7 @@ func TestAPIProtocolGet(t *testing.T) {
0x00, 0x00, 0x03, 0x00, 0xf0, 0x3c, 0x60, 0xc9, 0x20,
},*/
source.WritePacketRTP(medi, &rtp.Packet{
err := source.WritePacketRTP(medi, &rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: true,
@@ -912,6 +917,7 @@ func TestAPIProtocolGet(t *testing.T) {
0x05,
},
})
require.NoError(t, err)
}
}()
@@ -934,7 +940,7 @@ func TestAPIProtocolGet(t *testing.T) {
time.Sleep(500 * time.Millisecond)
source.WritePacketRTP(medi, &rtp.Packet{
err = source.WritePacketRTP(medi, &rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: true,
@@ -945,6 +951,7 @@ func TestAPIProtocolGet(t *testing.T) {
},
Payload: []byte{0x01, 0x02, 0x03, 0x04},
})
require.NoError(t, err)
<-c.incomingTrack
@@ -966,7 +973,9 @@ func TestAPIProtocolGet(t *testing.T) {
err = w.WriteH26x(track, 0, 0, true, [][]byte{{1}})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
time.Sleep(500 * time.Millisecond)
}
@@ -1237,9 +1246,9 @@ func TestAPIProtocolKick(t *testing.T) {
err = w.WriteH26x(track, 0, 0, true, [][]byte{{1}})
require.NoError(t, err)
bw.Flush()
// time.Sleep(500 * time.Millisecond)
err = bw.Flush()
require.NoError(t, err)
}
var pa string
+1 -1
View File
@@ -206,7 +206,7 @@ func (p *Core) createResources(initial bool) error {
// on Linux, try to raise the number of file descriptors that can be opened
// to allow the maximum possible number of clients
// do not check for errors
rlimit.Raise()
rlimit.Raise() //nolint:errcheck
gin.SetMode(gin.ReleaseMode)
+1 -1
View File
@@ -63,7 +63,7 @@ func newHLSHTTPServer( //nolint:dupl
}
router := gin.New()
router.SetTrustedProxies(trustedProxies.ToTrustedProxies())
router.SetTrustedProxies(trustedProxies.ToTrustedProxies()) //nolint:errcheck
router.NoRoute(s.onRequest)
+2 -1
View File
@@ -143,7 +143,7 @@ func TestHLSRead(t *testing.T) {
time.Sleep(500 * time.Millisecond)
for i := 0; i < 2; i++ {
source.WritePacketRTP(medi, &rtp.Packet{
err = source.WritePacketRTP(medi, &rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: true,
@@ -156,6 +156,7 @@ func TestHLSRead(t *testing.T) {
0x05, 0x02, 0x03, 0x04, // IDR
},
})
require.NoError(t, err)
}
hc := &http.Client{Transport: &http.Transport{}}
+4 -4
View File
@@ -87,7 +87,7 @@ func (ts *testHLSManager) onSegment1(ctx *gin.Context) {
w := mpegts.NewWriter(ctx.Writer, []*mpegts.Track{track1, track2})
w.WriteMPEG4Audio(track2, 1*90000, [][]byte{{1, 2, 3, 4}})
w.WriteMPEG4Audio(track2, 1*90000, [][]byte{{1, 2, 3, 4}}) //nolint:errcheck
}
func (ts *testHLSManager) onSegment2(ctx *gin.Context) {
@@ -97,14 +97,14 @@ func (ts *testHLSManager) onSegment2(ctx *gin.Context) {
w := mpegts.NewWriter(ctx.Writer, []*mpegts.Track{track1, track2})
w.WriteH26x(track1, 2*90000, 2*90000, true, [][]byte{
w.WriteH26x(track1, 2*90000, 2*90000, true, [][]byte{ //nolint:errcheck
{7, 1, 2, 3}, // SPS
{8}, // PPS
})
w.WriteMPEG4Audio(track2, 2*90000, [][]byte{{1, 2, 3, 4}})
w.WriteMPEG4Audio(track2, 2*90000, [][]byte{{1, 2, 3, 4}}) //nolint:errcheck
w.WriteH26x(track1, 2*90000, 2*90000, true, [][]byte{
w.WriteH26x(track1, 2*90000, 2*90000, true, [][]byte{ //nolint:errcheck
{5}, // IDR
})
}
+2 -2
View File
@@ -45,7 +45,7 @@ func newMetrics(
}
router := gin.New()
router.SetTrustedProxies(nil)
router.SetTrustedProxies(nil) //nolint:errcheck
router.GET("/metrics", m.onMetrics)
@@ -215,7 +215,7 @@ func (m *metrics) onMetrics(ctx *gin.Context) {
}
ctx.Writer.WriteHeader(http.StatusOK)
io.WriteString(ctx.Writer, out)
io.WriteString(ctx.Writer, out) //nolint:errcheck
}
// pathManagerSet is called by pathManager.
+19 -17
View File
@@ -164,23 +164,7 @@ func (c *rtmpConn) run() {
}()
}
err := func() error {
readerErr := make(chan error)
go func() {
readerErr <- c.runReader()
}()
select {
case err := <-readerErr:
c.nconn.Close()
return err
case <-c.ctx.Done():
c.nconn.Close()
<-readerErr
return errors.New("terminated")
}
}()
err := c.runInner()
c.ctxCancel()
@@ -189,6 +173,24 @@ func (c *rtmpConn) run() {
c.Log(logger.Info, "closed (%v)", err)
}
func (c *rtmpConn) runInner() error {
readerErr := make(chan error)
go func() {
readerErr <- c.runReader()
}()
select {
case err := <-readerErr:
c.nconn.Close()
return err
case <-c.ctx.Done():
c.nconn.Close()
<-readerErr
return errors.New("terminated")
}
}
func (c *rtmpConn) runReader() error {
c.nconn.SetReadDeadline(time.Now().Add(time.Duration(c.readTimeout)))
c.nconn.SetWriteDeadline(time.Now().Add(time.Duration(c.writeTimeout)))
+12 -10
View File
@@ -31,16 +31,18 @@ func newRTMPListener(
func (l *rtmpListener) run() {
defer l.wg.Done()
err := func() error {
for {
conn, err := l.ln.Accept()
if err != nil {
return err
}
l.parent.newConn(conn)
}
}()
err := l.runInner()
l.parent.acceptError(err)
}
func (l *rtmpListener) runInner() error {
for {
conn, err := l.ln.Accept()
if err != nil {
return err
}
l.parent.newConn(conn)
}
}
+3 -3
View File
@@ -117,7 +117,7 @@ func TestRTSPSource(t *testing.T) {
err = s.Start()
require.NoError(t, err)
defer s.Wait()
defer s.Wait() //nolint:errcheck
defer s.Close()
if source == "udp" || source == "tcp" {
@@ -212,7 +212,7 @@ func TestRTSPSourceNoPassword(t *testing.T) {
}
err = s.Start()
require.NoError(t, err)
defer s.Wait()
defer s.Wait() //nolint:errcheck
defer s.Close()
p, ok := newInstance("rtmp: no\n" +
@@ -268,7 +268,7 @@ func TestRTSPSourceRange(t *testing.T) {
}
err := s.Start()
require.NoError(t, err)
defer s.Wait()
defer s.Wait() //nolint:errcheck
defer s.Close()
var addConf string
+25 -23
View File
@@ -32,29 +32,31 @@ func newSRTListener(
func (l *srtListener) run() {
defer l.wg.Done()
err := func() error {
for {
var sconn *srtConn
conn, _, err := l.ln.Accept(func(req srt.ConnRequest) srt.ConnType {
sconn = l.parent.newConnRequest(req)
if sconn == nil {
return srt.REJECT
}
// currently it's the same to return SUBSCRIBE or PUBLISH
return srt.SUBSCRIBE
})
if err != nil {
return err
}
if conn == nil {
continue
}
sconn.setConn(conn)
}
}()
err := l.runInner()
l.parent.acceptError(err)
}
func (l *srtListener) runInner() error {
for {
var sconn *srtConn
conn, _, err := l.ln.Accept(func(req srt.ConnRequest) srt.ConnType {
sconn = l.parent.newConnRequest(req)
if sconn == nil {
return srt.REJECT
}
// currently it's the same to return SUBSCRIBE or PUBLISH
return srt.SUBSCRIBE
})
if err != nil {
return err
}
if conn == nil {
continue
}
sconn.setConn(conn)
}
}
+6 -2
View File
@@ -50,7 +50,9 @@ func TestSRTServer(t *testing.T) {
},
})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
time.Sleep(500 * time.Millisecond)
@@ -71,7 +73,9 @@ func TestSRTServer(t *testing.T) {
},
})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
r, err := mpegts.NewReader(reader)
require.NoError(t, err)
+6 -2
View File
@@ -51,13 +51,17 @@ func TestSRTSource(t *testing.T) {
},
})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
<-connected
err = w.WriteH26x(track, 0, 0, true, [][]byte{{5, 2}})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
<-done
}()
+6 -2
View File
@@ -55,13 +55,17 @@ func TestUDPSource(t *testing.T) {
},
})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
<-connected
err = w.WriteH26x(track, 0, 0, true, [][]byte{{5, 2}})
require.NoError(t, err)
bw.Flush()
err = bw.Flush()
require.NoError(t, err)
}()
medias, baseURL, _, err := c.Describe(u)
+1 -1
View File
@@ -67,7 +67,7 @@ func newWebRTCHTTPServer( //nolint:dupl
}
router := gin.New()
router.SetTrustedProxies(trustedProxies.ToTrustedProxies())
router.SetTrustedProxies(trustedProxies.ToTrustedProxies()) //nolint:errcheck
router.NoRoute(s.onRequest)
network, address := restrictNetwork("tcp", address)
+3 -2
View File
@@ -242,7 +242,7 @@ func TestWebRTCRead(t *testing.T) {
time.Sleep(500 * time.Millisecond)
source.WritePacketRTP(medi, &rtp.Packet{
err = source.WritePacketRTP(medi, &rtp.Packet{
Header: rtp.Header{
Version: 2,
Marker: true,
@@ -253,6 +253,7 @@ func TestWebRTCRead(t *testing.T) {
},
Payload: []byte{3},
})
require.NoError(t, err)
trak := <-c.incomingTrack
@@ -289,7 +290,7 @@ func TestWebRTCReadNotFound(t *testing.T) {
ICEServers: iceServers,
})
require.NoError(t, err)
defer pc.Close()
defer pc.Close() //nolint:errcheck
_, err = pc.AddTransceiverFromKind(webrtc.RTPCodecTypeVideo)
require.NoError(t, err)
+23 -11
View File
@@ -47,7 +47,10 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
PayloadType: 105,
PayloadMaxSize: webrtcPayloadMaxSize,
}
encoder.Init()
err = encoder.Init()
if err != nil {
return nil, err
}
return &webRTCOutgoingTrack{
media: videoMedia,
@@ -66,7 +69,7 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
}
for _, pkt := range packets {
webRTCTrak.WriteRTP(pkt)
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
return nil
@@ -94,7 +97,10 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
PayloadType: 96,
PayloadMaxSize: webrtcPayloadMaxSize,
}
encoder.Init()
err = encoder.Init()
if err != nil {
return nil, err
}
return &webRTCOutgoingTrack{
media: videoMedia,
@@ -113,7 +119,7 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
}
for _, pkt := range packets {
webRTCTrak.WriteRTP(pkt)
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
return nil
@@ -141,7 +147,10 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
PayloadType: 96,
PayloadMaxSize: webrtcPayloadMaxSize,
}
encoder.Init()
err = encoder.Init()
if err != nil {
return nil, err
}
return &webRTCOutgoingTrack{
media: videoMedia,
@@ -160,7 +169,7 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
}
for _, pkt := range packets {
webRTCTrak.WriteRTP(pkt)
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
return nil
@@ -188,7 +197,10 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
PayloadType: 96,
PayloadMaxSize: webrtcPayloadMaxSize,
}
encoder.Init()
err = encoder.Init()
if err != nil {
return nil, err
}
var lastPTS time.Duration
firstNALUReceived := false
@@ -220,7 +232,7 @@ func newWebRTCOutgoingTrackVideo(medias media.Medias) (*webRTCOutgoingTrack, err
}
for _, pkt := range packets {
webRTCTrak.WriteRTP(pkt)
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
return nil
@@ -255,7 +267,7 @@ func newWebRTCOutgoingTrackAudio(medias media.Medias) (*webRTCOutgoingTrack, err
track: webRTCTrak,
cb: func(unit formatprocessor.Unit) error {
for _, pkt := range unit.GetRTPPackets() {
webRTCTrak.WriteRTP(pkt)
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
return nil
@@ -285,7 +297,7 @@ func newWebRTCOutgoingTrackAudio(medias media.Medias) (*webRTCOutgoingTrack, err
track: webRTCTrak,
cb: func(unit formatprocessor.Unit) error {
for _, pkt := range unit.GetRTPPackets() {
webRTCTrak.WriteRTP(pkt)
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
return nil
@@ -322,7 +334,7 @@ func newWebRTCOutgoingTrackAudio(medias media.Medias) (*webRTCOutgoingTrack, err
track: webRTCTrak,
cb: func(unit formatprocessor.Unit) error {
for _, pkt := range unit.GetRTPPackets() {
webRTCTrak.WriteRTP(pkt)
webRTCTrak.WriteRTP(pkt) //nolint:errcheck
}
return nil
+1 -1
View File
@@ -50,7 +50,7 @@ func (e *Cmd) runOSSpecific() error {
select {
case <-e.terminate:
syscall.Kill(cmd.Process.Pid, syscall.SIGINT)
syscall.Kill(cmd.Process.Pid, syscall.SIGINT) //nolint:errcheck
<-cmdDone
return errTerminated
+2 -1
View File
@@ -13,7 +13,8 @@ func TestGenericRemovePadding(t *testing.T) {
PayloadTyp: 96,
RTPMa: "private/90000",
}
forma.Init()
err := forma.Init()
require.NoError(t, err)
p, err := New(1472, forma, false, nil)
require.NoError(t, err)
+16 -6
View File
@@ -30,7 +30,8 @@ func TestH264DynamicParams(t *testing.T) {
RTPPackets: []*rtp.Packet{pkts[0]},
},
}
p.Process(data, true)
err = p.Process(data, true)
require.NoError(t, err)
require.Equal(t, [][]byte{
{byte(h264.NALUTypeIDR)},
@@ -38,31 +39,37 @@ func TestH264DynamicParams(t *testing.T) {
pkts, err = enc.Encode([][]byte{{7, 4, 5, 6}}, 0) // SPS
require.NoError(t, err)
p.Process(&UnitH264{
err = p.Process(&UnitH264{
BaseUnit: BaseUnit{
RTPPackets: []*rtp.Packet{pkts[0]},
},
}, false)
require.NoError(t, err)
pkts, err = enc.Encode([][]byte{{8, 1}}, 0) // PPS
require.NoError(t, err)
p.Process(&UnitH264{
err = p.Process(&UnitH264{
BaseUnit: BaseUnit{
RTPPackets: []*rtp.Packet{pkts[0]},
},
}, false)
require.NoError(t, err)
require.Equal(t, []byte{7, 4, 5, 6}, forma.SPS)
require.Equal(t, []byte{8, 1}, forma.PPS)
pkts, err = enc.Encode([][]byte{{byte(h264.NALUTypeIDR)}}, 0)
require.NoError(t, err)
data = &UnitH264{
BaseUnit: BaseUnit{
RTPPackets: []*rtp.Packet{pkts[0]},
},
}
p.Process(data, true)
err = p.Process(data, true)
require.NoError(t, err)
require.Equal(t, [][]byte{
{0x07, 4, 5, 6},
@@ -127,7 +134,9 @@ func TestH264OversizedPackets(t *testing.T) {
RTPPackets: []*rtp.Packet{pkt},
},
}
p.Process(data, false)
err := p.Process(data, false)
require.NoError(t, err)
out = append(out, data.RTPPackets...)
}
@@ -190,7 +199,8 @@ func TestH264EmptyPacket(t *testing.T) {
},
}
p.Process(unit, false)
err = p.Process(unit, false)
require.NoError(t, err)
// if all NALUs have been removed, no RTP packets must be generated.
require.Equal(t, []*rtp.Packet(nil), unit.RTPPackets)
+19 -7
View File
@@ -29,7 +29,8 @@ func TestH265DynamicParams(t *testing.T) {
RTPPackets: []*rtp.Packet{pkts[0]},
},
}
p.Process(data, true)
err = p.Process(data, true)
require.NoError(t, err)
require.Equal(t, [][]byte{
{byte(h265.NALUType_CRA_NUT) << 1, 0},
@@ -37,27 +38,33 @@ func TestH265DynamicParams(t *testing.T) {
pkts, err = enc.Encode([][]byte{{byte(h265.NALUType_VPS_NUT) << 1, 1, 2, 3}}, 0)
require.NoError(t, err)
p.Process(&UnitH265{
err = p.Process(&UnitH265{
BaseUnit: BaseUnit{
RTPPackets: []*rtp.Packet{pkts[0]},
},
}, false)
require.NoError(t, err)
pkts, err = enc.Encode([][]byte{{byte(h265.NALUType_SPS_NUT) << 1, 4, 5, 6}}, 0)
require.NoError(t, err)
p.Process(&UnitH265{
err = p.Process(&UnitH265{
BaseUnit: BaseUnit{
RTPPackets: []*rtp.Packet{pkts[0]},
},
}, false)
require.NoError(t, err)
pkts, err = enc.Encode([][]byte{{byte(h265.NALUType_PPS_NUT) << 1, 7, 8, 9}}, 0)
require.NoError(t, err)
p.Process(&UnitH265{
err = p.Process(&UnitH265{
BaseUnit: BaseUnit{
RTPPackets: []*rtp.Packet{pkts[0]},
},
}, false)
require.NoError(t, err)
require.Equal(t, []byte{byte(h265.NALUType_VPS_NUT) << 1, 1, 2, 3}, forma.VPS)
require.Equal(t, []byte{byte(h265.NALUType_SPS_NUT) << 1, 4, 5, 6}, forma.SPS)
@@ -65,12 +72,14 @@ func TestH265DynamicParams(t *testing.T) {
pkts, err = enc.Encode([][]byte{{byte(h265.NALUType_CRA_NUT) << 1, 0}}, 0)
require.NoError(t, err)
data = &UnitH265{
BaseUnit: BaseUnit{
RTPPackets: []*rtp.Packet{pkts[0]},
},
}
p.Process(data, true)
err = p.Process(data, true)
require.NoError(t, err)
require.Equal(t, [][]byte{
{byte(h265.NALUType_VPS_NUT) << 1, 1, 2, 3},
@@ -124,7 +133,9 @@ func TestH265OversizedPackets(t *testing.T) {
RTPPackets: []*rtp.Packet{pkt},
},
}
p.Process(data, false)
err = p.Process(data, false)
require.NoError(t, err)
out = append(out, data.RTPPackets...)
}
@@ -187,7 +198,8 @@ func TestH265EmptyPacket(t *testing.T) {
},
}
p.Process(unit, false)
err = p.Process(unit, false)
require.NoError(t, err)
// if all NALUs have been removed, no RTP packets must be generated.
require.Equal(t, []*rtp.Packet(nil), unit.RTPPackets)
+1 -1
View File
@@ -35,7 +35,7 @@ func (w *loggerWriter) WriteHeader(statusCode int) {
func (w *loggerWriter) dump() string {
var buf bytes.Buffer
fmt.Fprintf(&buf, "%s %d %s\n", "HTTP/1.1", w.status, http.StatusText(w.status))
w.w.Header().Write(&buf)
w.w.Header().Write(&buf) //nolint:errcheck
buf.Write([]byte("\n"))
if w.buf.Len() > 0 {
fmt.Fprintf(&buf, "(body of %d bytes)", w.buf.Len())
+1 -1
View File
@@ -27,7 +27,7 @@ func (d *destinationFile) log(t time.Time, level Level, format string, args ...i
writeTime(&d.buf, t, false)
writeLevel(&d.buf, level, false)
writeContent(&d.buf, format, args)
d.file.Write(d.buf.Bytes())
d.file.Write(d.buf.Bytes()) //nolint:errcheck
}
func (d *destinationFile) close() {
+1 -1
View File
@@ -25,7 +25,7 @@ func (d *destinationStdout) log(t time.Time, level Level, format string, args ..
writeTime(&d.buf, t, d.useColor)
writeLevel(&d.buf, level, d.useColor)
writeContent(&d.buf, format, args)
os.Stdout.Write(d.buf.Bytes())
os.Stdout.Write(d.buf.Bytes()) //nolint:errcheck
}
func (d *destinationStdout) close() {
+2 -1
View File
@@ -13,6 +13,7 @@ func TestWriter(t *testing.T) {
w := NewWriter(&buf)
w.SetCount(100)
w.Write(bytes.Repeat([]byte{0x01}, 64))
_, err := w.Write(bytes.Repeat([]byte{0x01}, 64))
require.NoError(t, err)
require.Equal(t, uint64(100+64), w.Count())
}
+1 -1
View File
@@ -490,6 +490,6 @@ func BenchmarkRead(b *testing.B) {
conn := newNoHandshakeConn(&buf)
for n := 0; n < b.N; n++ {
conn.Read()
conn.Read() //nolint:errcheck
}
}
+4 -1
View File
@@ -44,9 +44,12 @@ func (rw *ReadWriter) Read() (Message, error) {
rw.w.SetAcknowledgeValue(tmsg.Value)
case *UserControlPingRequest:
rw.w.Write(&UserControlPingResponse{
err := rw.w.Write(&UserControlPingResponse{
ServerTime: tmsg.ServerTime,
})
if err != nil {
return nil, err
}
}
return msg, nil
+1 -1
View File
@@ -266,7 +266,7 @@ func (r *Reader) Read() (*Message, error) {
r.chunkStreams[chunkStreamID] = rc
}
r.br.UnreadByte()
r.br.UnreadByte() //nolint:errcheck
msg, err := rc.readMessage(typ)
if err != nil {
+1 -1
View File
@@ -90,7 +90,7 @@ func New(
// Close closes the connection.
func (co *PeerConnection) Close() {
co.PeerConnection.Close()
co.PeerConnection.Close() //nolint:errcheck
<-co.closed
}
+6 -6
View File
@@ -57,7 +57,7 @@ func NewServerConn(w http.ResponseWriter, req *http.Request) (*ServerConn, error
// Close closes a ServerConn.
func (c *ServerConn) Close() {
c.wc.Close()
c.wc.Close() //nolint:errcheck
close(c.terminate)
}
@@ -67,10 +67,10 @@ func (c *ServerConn) RemoteAddr() net.Addr {
}
func (c *ServerConn) run() {
c.wc.SetReadDeadline(time.Now().Add(pingInterval + pingTimeout))
c.wc.SetReadDeadline(time.Now().Add(pingInterval + pingTimeout)) //nolint:errcheck
c.wc.SetPongHandler(func(string) error {
c.wc.SetReadDeadline(time.Now().Add(pingInterval + pingTimeout))
c.wc.SetReadDeadline(time.Now().Add(pingInterval + pingTimeout)) //nolint:errcheck
return nil
})
@@ -80,13 +80,13 @@ func (c *ServerConn) run() {
for {
select {
case byts := <-c.write:
c.wc.SetWriteDeadline(time.Now().Add(writeTimeout))
c.wc.SetWriteDeadline(time.Now().Add(writeTimeout)) //nolint:errcheck
err := c.wc.WriteMessage(websocket.TextMessage, byts)
c.writeErr <- err
case <-pingTicker.C:
c.wc.SetWriteDeadline(time.Now().Add(writeTimeout))
c.wc.WriteMessage(websocket.PingMessage, nil)
c.wc.SetWriteDeadline(time.Now().Add(writeTimeout)) //nolint:errcheck
c.wc.WriteMessage(websocket.PingMessage, nil) //nolint:errcheck
case <-c.terminate:
return
+3 -2
View File
@@ -37,7 +37,7 @@ func TestServerConn(t *testing.T) {
c, res, err := websocket.DefaultDialer.Dial("ws://localhost:6344/", nil)
require.NoError(t, err)
defer res.Body.Close()
defer c.Close()
defer c.Close() //nolint:errcheck
c.SetPingHandler(func(msg string) error {
close(pingReceived)
@@ -49,7 +49,8 @@ func TestServerConn(t *testing.T) {
require.NoError(t, err)
require.Equal(t, "testing", msg)
c.ReadMessage()
_, _, err = c.ReadMessage()
require.Error(t, err)
<-pingReceived
}
+1 -1
View File
@@ -16,7 +16,7 @@ func quoteCredential(v string) string {
func unquoteCredential(v string) string {
var s string
json.Unmarshal([]byte("\""+v+"\""), &s)
json.Unmarshal([]byte("\""+v+"\""), &s) //nolint:errcheck
return s
}