From 130decbf1db85467fd9586b3ca601cf005c0daf9 Mon Sep 17 00:00:00 2001 From: David Zhao Date: Thu, 24 Feb 2022 23:07:15 -0800 Subject: [PATCH] CI step for static check (#467) * CI step for static check * fix staticcheck --- .github/workflows/buildtest.yaml | 5 +++++ pkg/logger/logger.go | 2 -- pkg/rtc/uptrackmanager.go | 2 +- pkg/service/auth.go | 11 ++++++++--- pkg/service/roomservice_test.go | 6 ++---- pkg/service/server.go | 8 +++----- 6 files changed, 19 insertions(+), 15 deletions(-) diff --git a/.github/workflows/buildtest.yaml b/.github/workflows/buildtest.yaml index f9cd809e1..936f3aef2 100644 --- a/.github/workflows/buildtest.yaml +++ b/.github/workflows/buildtest.yaml @@ -42,6 +42,11 @@ jobs: version: latest args: build + - name: Static Check + uses: dominikh/staticcheck-action@v1.1.0 + with: + version: "2021.1.1" + - name: Test run: | set -euo pipefail diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index 39be203f3..71d847e0e 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -12,7 +12,6 @@ import ( ) var ( - logConfig config.LoggingConfig pionLevel zapcore.Level ) @@ -43,7 +42,6 @@ func SetLogger(l logr.Logger) { } func InitFromConfig(config config.LoggingConfig) { - logConfig = config lvl := parseLevel(config.Level) pionLevel = parseLevel(config.PionLevel) if lvl > pionLevel { diff --git a/pkg/rtc/uptrackmanager.go b/pkg/rtc/uptrackmanager.go index 377e3f0fc..0c735699d 100644 --- a/pkg/rtc/uptrackmanager.go +++ b/pkg/rtc/uptrackmanager.go @@ -38,7 +38,7 @@ type UpTrackManager struct { func NewUpTrackManager(params UpTrackManagerParams) *UpTrackManager { return &UpTrackManager{ params: params, - publishedTracks: make(map[livekit.TrackID]types.MediaTrack, 0), + publishedTracks: make(map[livekit.TrackID]types.MediaTrack), pendingSubscriptions: make(map[livekit.TrackID][]livekit.ParticipantID), } } diff --git a/pkg/service/auth.go b/pkg/service/auth.go index df6801a7e..b24c06c1d 100644 --- a/pkg/service/auth.go +++ b/pkg/service/auth.go @@ -15,10 +15,11 @@ import ( const ( authorizationHeader = "Authorization" bearerPrefix = "Bearer " - grantsKey = "grants" accessTokenParam = "access_token" ) +type grantsKey struct{} + var ( ErrPermissionDenied = errors.New("permissions denied") ) @@ -75,20 +76,24 @@ func (m *APIKeyAuthMiddleware) ServeHTTP(w http.ResponseWriter, r *http.Request, // set grants in context ctx := r.Context() - r = r.WithContext(context.WithValue(ctx, grantsKey, grants)) + r = r.WithContext(context.WithValue(ctx, grantsKey{}, grants)) } next.ServeHTTP(w, r) } func GetGrants(ctx context.Context) *auth.ClaimGrants { - claims, ok := ctx.Value(grantsKey).(*auth.ClaimGrants) + claims, ok := ctx.Value(grantsKey{}).(*auth.ClaimGrants) if !ok { return nil } return claims } +func WithGrants(ctx context.Context, grants *auth.ClaimGrants) context.Context { + return context.WithValue(ctx, grantsKey{}, grants) +} + func SetAuthorizationToken(r *http.Request, token string) { r.Header.Set(authorizationHeader, bearerPrefix+token) } diff --git a/pkg/service/roomservice_test.go b/pkg/service/roomservice_test.go index 7d536cce0..e99167a4b 100644 --- a/pkg/service/roomservice_test.go +++ b/pkg/service/roomservice_test.go @@ -13,8 +13,6 @@ import ( "github.com/livekit/livekit-server/pkg/service/servicefakes" ) -const grantsKey = "grants" - func TestDeleteRoom(t *testing.T) { t.Run("normal deletion", func(t *testing.T) { svc := newTestRoomService() @@ -23,7 +21,7 @@ func TestDeleteRoom(t *testing.T) { RoomCreate: true, }, } - ctx := context.WithValue(context.Background(), grantsKey, grant) + ctx := service.WithGrants(context.Background(), grant) svc.store.LoadRoomReturns(nil, service.ErrRoomNotFound) _, err := svc.DeleteRoom(ctx, &livekit.DeleteRoomRequest{ Room: "testroom", @@ -36,7 +34,7 @@ func TestDeleteRoom(t *testing.T) { grant := &auth.ClaimGrants{ Video: &auth.VideoGrant{}, } - ctx := context.WithValue(context.Background(), grantsKey, grant) + ctx := service.WithGrants(context.Background(), grant) _, err := svc.DeleteRoom(ctx, &livekit.DeleteRoomRequest{ Room: "testroom", }) diff --git a/pkg/service/server.go b/pkg/service/server.go index 00f2f235a..7d05f148e 100644 --- a/pkg/service/server.go +++ b/pkg/service/server.go @@ -230,11 +230,9 @@ func (s *LivekitServer) Stop(force bool) { partTicker := time.NewTicker(5 * time.Second) waitingForParticipants := !force && s.roomManager.HasParticipants() for waitingForParticipants { - select { - case <-partTicker.C: - logger.Infow("waiting for participants to exit") - waitingForParticipants = s.roomManager.HasParticipants() - } + <-partTicker.C + logger.Infow("waiting for participants to exit") + waitingForParticipants = s.roomManager.HasParticipants() } partTicker.Stop()