update golangci-lint

This commit is contained in:
aler9
2021-09-09 23:05:54 +02:00
parent 44c3d7c5d5
commit 9398cea0c2
12 changed files with 56 additions and 28 deletions

View File

@@ -9,6 +9,7 @@ linters:
- gofumpt - gofumpt
- golint - golint
- misspell - misspell
- lll
- prealloc - prealloc
- unconvert - unconvert
disable: disable:

View File

@@ -75,7 +75,7 @@ type PathConf struct {
SourceAnyPortEnable bool `yaml:"sourceAnyPortEnable" json:"sourceAnyPortEnable"` SourceAnyPortEnable bool `yaml:"sourceAnyPortEnable" json:"sourceAnyPortEnable"`
SourceFingerprint string `yaml:"sourceFingerprint" json:"sourceFingerprint"` SourceFingerprint string `yaml:"sourceFingerprint" json:"sourceFingerprint"`
SourceOnDemand bool `yaml:"sourceOnDemand" json:"sourceOnDemand"` SourceOnDemand bool `yaml:"sourceOnDemand" json:"sourceOnDemand"`
SourceOnDemandStartTimeout time.Duration `yaml:"sourceOnDemandStartTimeout" json:"sourceOnDemandStartTimeout"` SourceOnDemandStartTimeout time.Duration `yaml:"sourceOnDemandStartTimeout" json:"sourceOnDemandStartTimeout"` //nolint:lll
SourceOnDemandCloseAfter time.Duration `yaml:"sourceOnDemandCloseAfter" json:"sourceOnDemandCloseAfter"` SourceOnDemandCloseAfter time.Duration `yaml:"sourceOnDemandCloseAfter" json:"sourceOnDemandCloseAfter"`
SourceRedirect string `yaml:"sourceRedirect" json:"sourceRedirect"` SourceRedirect string `yaml:"sourceRedirect" json:"sourceRedirect"`
DisablePublisherOverride bool `yaml:"disablePublisherOverride" json:"disablePublisherOverride"` DisablePublisherOverride bool `yaml:"disablePublisherOverride" json:"disablePublisherOverride"`
@@ -272,7 +272,8 @@ func (pconf *PathConf) checkAndFillMissing(name string) error {
} }
if pconf.PublishPass != "" { if pconf.PublishPass != "" {
if pconf.Source != "publisher" { if pconf.Source != "publisher" {
return fmt.Errorf("'publishPass' is useless when source is not 'publisher', since the stream is not provided by a publisher, but by a fixed source") return fmt.Errorf("'publishPass' is useless when source is not 'publisher', since " +
"the stream is not provided by a publisher, but by a fixed source")
} }
if !strings.HasPrefix(pconf.PublishPass, "sha256:") && !reUserPass.MatchString(pconf.PublishPass) { if !strings.HasPrefix(pconf.PublishPass, "sha256:") && !reUserPass.MatchString(pconf.PublishPass) {
@@ -289,7 +290,8 @@ func (pconf *PathConf) checkAndFillMissing(name string) error {
} }
if pconf.Source != "publisher" { if pconf.Source != "publisher" {
return nil, fmt.Errorf("'publishIPs' is useless when source is not 'publisher', since the stream is not provided by a publisher, but by a fixed source") return nil, fmt.Errorf("'publishIPs' is useless when source is not 'publisher', since " +
"the stream is not provided by a publisher, but by a fixed source")
} }
return parseIPCidrList(pconf.PublishIPs) return parseIPCidrList(pconf.PublishIPs)
@@ -326,7 +328,8 @@ func (pconf *PathConf) checkAndFillMissing(name string) error {
} }
if pconf.RunOnPublish != "" && pconf.Source != "publisher" { if pconf.RunOnPublish != "" && pconf.Source != "publisher" {
return fmt.Errorf("'runOnPublish' is useless when source is not 'publisher', since the stream is not provided by a publisher, but by a fixed source") return fmt.Errorf("'runOnPublish' is useless when source is not 'publisher', since " +
"the stream is not provided by a publisher, but by a fixed source")
} }
if pconf.RunOnDemand != "" && pconf.Source != "publisher" { if pconf.RunOnDemand != "" && pconf.Source != "publisher" {

View File

@@ -96,7 +96,8 @@ func TestAPIConfigPathsAdd(t *testing.T) {
var out map[string]interface{} var out map[string]interface{}
err = httpRequest(http.MethodGet, "http://localhost:9997/v1/config/get", nil, &out) err = httpRequest(http.MethodGet, "http://localhost:9997/v1/config/get", nil, &out)
require.NoError(t, err) require.NoError(t, err)
require.Equal(t, "rtsp://127.0.0.1:9999/mypath", out["paths"].(map[string]interface{})["mypath"].(map[string]interface{})["source"]) require.Equal(t, "rtsp://127.0.0.1:9999/mypath",
out["paths"].(map[string]interface{})["mypath"].(map[string]interface{})["source"])
} }
func TestAPIConfigPathsEdit(t *testing.T) { func TestAPIConfigPathsEdit(t *testing.T) {
@@ -179,7 +180,8 @@ func TestAPIPathsList(t *testing.T) {
_, ok = out.Items["mypath"] _, ok = out.Items["mypath"]
require.Equal(t, true, ok) require.Equal(t, true, ok)
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
func() { func() {
@@ -227,7 +229,8 @@ func TestAPIList(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p.close() defer p.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
switch ca { switch ca {
@@ -308,7 +311,8 @@ func TestAPIKick(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p.close() defer p.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
switch ca { switch ca {

View File

@@ -49,7 +49,8 @@ func New(args []string) (*Core, bool) {
"rtsp-simple-server "+version+"\n\nRTSP server.") "rtsp-simple-server "+version+"\n\nRTSP server.")
argVersion := k.Flag("version", "print version").Bool() argVersion := k.Flag("version", "print version").Bool()
argConfPath := k.Arg("confpath", "path to a config file. The default is rtsp-simple-server.yml.").Default("rtsp-simple-server.yml").String() argConfPath := k.Arg("confpath", "path to a config file. The default is rtsp-simple-server.yml.").
Default("rtsp-simple-server.yml").String()
kingpin.MustParse(k.Parse(args)) kingpin.MustParse(k.Parse(args))

View File

@@ -153,7 +153,8 @@ func TestCoreHotReloading(t *testing.T) {
err := ioutil.WriteFile(confPath, []byte("paths:\n"+ err := ioutil.WriteFile(confPath, []byte("paths:\n"+
" test1:\n"+ " test1:\n"+
" runOnDemand: ffmpeg -hide_banner -loglevel error -re -i ../../testimages/ffmpeg/emptyvideo.mkv -c copy -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH\n"+ " runOnDemand: ffmpeg -hide_banner -loglevel error -re "+
"-i ../../testimages/ffmpeg/emptyvideo.mkv -c copy -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH\n"+
" test3:\n"+ " test3:\n"+
" runOnInit: echo aaa\n"+ " runOnInit: echo aaa\n"+
" test4:\n"+ " test4:\n"+
@@ -178,7 +179,8 @@ func TestCoreHotReloading(t *testing.T) {
err = ioutil.WriteFile(confPath, []byte("paths:\n"+ err = ioutil.WriteFile(confPath, []byte("paths:\n"+
" test2:\n"+ " test2:\n"+
" runOnDemand: ffmpeg -hide_banner -loglevel error -re -i ../../testimages/ffmpeg/emptyvideo.mkv -c copy -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH\n"+ " runOnDemand: ffmpeg -hide_banner -loglevel error -re "+
"-i ../../testimages/ffmpeg/emptyvideo.mkv -c copy -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH\n"+
" test3:\n"+ " test3:\n"+
" test4:\n"+ " test4:\n"+
" runOnInit: echo bbb\n"), " runOnInit: echo bbb\n"),

View File

@@ -27,7 +27,8 @@ func TestMetrics(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p.close() defer p.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
source, err := gortsplib.DialPublish("rtsp://localhost:8554/mypath", source, err := gortsplib.DialPublish("rtsp://localhost:8554/mypath",

View File

@@ -186,7 +186,8 @@ func (c *rtspConn) OnResponse(res *base.Response) {
} }
// OnDescribe is called by rtspServer. // OnDescribe is called by rtspServer.
func (c *rtspConn) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*base.Response, *gortsplib.ServerStream, error) { func (c *rtspConn) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx,
) (*base.Response, *gortsplib.ServerStream, error) {
res := c.pathManager.OnDescribe(pathDescribeReq{ res := c.pathManager.OnDescribe(pathDescribeReq{
PathName: ctx.Path, PathName: ctx.Path,
URL: ctx.Req.URL, URL: ctx.Req.URL,

View File

@@ -303,7 +303,8 @@ func (s *rtspServer) OnSessionClose(ctx *gortsplib.ServerHandlerOnSessionCloseCt
} }
// OnDescribe implements gortsplib.ServerHandlerOnDescribe. // OnDescribe implements gortsplib.ServerHandlerOnDescribe.
func (s *rtspServer) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*base.Response, *gortsplib.ServerStream, error) { func (s *rtspServer) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx,
) (*base.Response, *gortsplib.ServerStream, error) {
s.mutex.RLock() s.mutex.RLock()
c := s.conns[ctx.Conn] c := s.conns[ctx.Conn]
s.mutex.RUnlock() s.mutex.RUnlock()

View File

@@ -175,7 +175,8 @@ func TestRTSPServerPublishRead(t *testing.T) {
}() }()
cnt2, err := newContainer("gstreamer", "read", []string{ cnt2, err := newContainer("gstreamer", "read", []string{
"rtspsrc location=" + proto + "://127.0.0.1:" + port + "/teststream protocols=" + ps + " tls-validation-flags=0 latency=0 " + "rtspsrc location=" + proto + "://127.0.0.1:" + port + "/teststream protocols=" + ps +
" tls-validation-flags=0 latency=0 " +
"! application/x-rtp,media=video ! decodebin ! exitafterframe ! fakesink", "! application/x-rtp,media=video ! decodebin ! exitafterframe ! fakesink",
}) })
require.NoError(t, err) require.NoError(t, err)
@@ -354,7 +355,8 @@ func TestRTSPServerAuthFail(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p.close() defer p.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
_, err = gortsplib.DialPublish( _, err = gortsplib.DialPublish(
@@ -412,7 +414,8 @@ func TestRTSPServerAuthFail(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p.close() defer p.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
_, err = gortsplib.DialPublish( _, err = gortsplib.DialPublish(
@@ -477,7 +480,8 @@ func TestRTSPServerPublisherOverride(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p.close() defer p.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
s1, err := gortsplib.DialPublish("rtsp://localhost:8554/teststream", s1, err := gortsplib.DialPublish("rtsp://localhost:8554/teststream",
@@ -544,7 +548,8 @@ func TestRTSPServerNonCompliantFrameSize(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p.close() defer p.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
client := &gortsplib.Client{ client := &gortsplib.Client{
@@ -594,7 +599,8 @@ func TestRTSPServerNonCompliantFrameSize(t *testing.T) {
require.Equal(t, true, ok) require.Equal(t, true, ok)
defer p1.close() defer p1.close()
track, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}}) track, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x01, 0x02, 0x03, 0x04}})
require.NoError(t, err) require.NoError(t, err)
client := &gortsplib.Client{ client := &gortsplib.Client{
@@ -742,7 +748,8 @@ func TestRTSPServerRunOnDemand(t *testing.T) {
doneFile := filepath.Join(os.TempDir(), "ondemand_done") doneFile := filepath.Join(os.TempDir(), "ondemand_done")
onDemandFile, err := writeTempFile([]byte(fmt.Sprintf(`#!/bin/sh onDemandFile, err := writeTempFile([]byte(fmt.Sprintf(`#!/bin/sh
trap 'touch %s; [ -z "$(jobs -p)" ] || kill $(jobs -p)' QUIT trap 'touch %s; [ -z "$(jobs -p)" ] || kill $(jobs -p)' QUIT
ffmpeg -hide_banner -loglevel error -re -i ../../testimages/ffmpeg/emptyvideo.mkv -c copy -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH & ffmpeg -hide_banner -loglevel error -re `+
`-i ../../testimages/ffmpeg/emptyvideo.mkv -c copy -f rtsp rtsp://localhost:$RTSP_PORT/$RTSP_PATH &
wait wait
`, doneFile))) `, doneFile)))
require.NoError(t, err) require.NoError(t, err)

View File

@@ -170,7 +170,8 @@ func (s *rtspSession) OnAnnounce(c *rtspConn, ctx *gortsplib.ServerHandlerOnAnno
} }
// OnSetup is called by rtspServer. // OnSetup is called by rtspServer.
func (s *rtspSession) OnSetup(c *rtspConn, ctx *gortsplib.ServerHandlerOnSetupCtx) (*base.Response, *gortsplib.ServerStream, error) { func (s *rtspSession) OnSetup(c *rtspConn, ctx *gortsplib.ServerHandlerOnSetupCtx,
) (*base.Response, *gortsplib.ServerStream, error) {
if ctx.Transport.Protocol == base.StreamProtocolUDP { if ctx.Transport.Protocol == base.StreamProtocolUDP {
if _, ok := s.protocols[conf.ProtocolUDP]; !ok { if _, ok := s.protocols[conf.ProtocolUDP]; !ok {
return &base.Response{ return &base.Response{

View File

@@ -21,7 +21,8 @@ type testServer struct {
done chan struct{} done chan struct{}
} }
func (sh *testServer) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*base.Response, *gortsplib.ServerStream, error) { func (sh *testServer) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx,
) (*base.Response, *gortsplib.ServerStream, error) {
if sh.authValidator == nil { if sh.authValidator == nil {
sh.authValidator = auth.NewValidator(sh.user, sh.pass, nil) sh.authValidator = auth.NewValidator(sh.user, sh.pass, nil)
} }
@@ -36,7 +37,8 @@ func (sh *testServer) OnDescribe(ctx *gortsplib.ServerHandlerOnDescribeCtx) (*ba
}, nil, nil }, nil, nil
} }
track, _ := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x05, 0x06}}) track, _ := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x01, 0x02, 0x03, 0x04}, PPS: []byte{0x05, 0x06}})
sh.stream = gortsplib.NewServerStream(gortsplib.Tracks{track}) sh.stream = gortsplib.NewServerStream(gortsplib.Tracks{track})
return &base.Response{ return &base.Response{

View File

@@ -17,10 +17,12 @@ func checkTSPacket(t *testing.T, byts []byte, pid int, afc int) {
} }
func TestMuxer(t *testing.T) { func TestMuxer(t *testing.T) {
videoTrack, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x07, 0x01, 0x02, 0x03}, PPS: []byte{0x08}}) videoTrack, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x07, 0x01, 0x02, 0x03}, PPS: []byte{0x08}})
require.NoError(t, err) require.NoError(t, err)
audioTrack, err := gortsplib.NewTrackAAC(97, &gortsplib.TrackConfigAAC{Type: 2, SampleRate: 44100, ChannelCount: 2}) audioTrack, err := gortsplib.NewTrackAAC(97,
&gortsplib.TrackConfigAAC{Type: 2, SampleRate: 44100, ChannelCount: 2})
require.NoError(t, err) require.NoError(t, err)
m, err := NewMuxer(3, 1*time.Second, videoTrack, audioTrack) m, err := NewMuxer(3, 1*time.Second, videoTrack, audioTrack)
@@ -106,10 +108,12 @@ func TestMuxer(t *testing.T) {
} }
func TestMuxerCloseBeforeFirstSegment(t *testing.T) { func TestMuxerCloseBeforeFirstSegment(t *testing.T) {
videoTrack, err := gortsplib.NewTrackH264(96, &gortsplib.TrackConfigH264{SPS: []byte{0x07, 0x01, 0x02, 0x03}, PPS: []byte{0x08}}) videoTrack, err := gortsplib.NewTrackH264(96,
&gortsplib.TrackConfigH264{SPS: []byte{0x07, 0x01, 0x02, 0x03}, PPS: []byte{0x08}})
require.NoError(t, err) require.NoError(t, err)
audioTrack, err := gortsplib.NewTrackAAC(97, &gortsplib.TrackConfigAAC{Type: 2, SampleRate: 44100, ChannelCount: 2}) audioTrack, err := gortsplib.NewTrackAAC(97,
&gortsplib.TrackConfigAAC{Type: 2, SampleRate: 44100, ChannelCount: 2})
require.NoError(t, err) require.NoError(t, err)
m, err := NewMuxer(3, 1*time.Second, videoTrack, audioTrack) m, err := NewMuxer(3, 1*time.Second, videoTrack, audioTrack)