From 365e63230d88f264ebab3dc0e747bb6dcdd8811f Mon Sep 17 00:00:00 2001 From: Raja Subramanian Date: Mon, 4 Nov 2024 11:26:41 +0530 Subject: [PATCH] Some misc clean up. (#3156) * Some misc clean up. - Have been seeing counterfeiter warnings about efficiency for a while with go:generate declaration multiple times in the same package. Address that: https://github.com/maxbrunsfeld/counterfeiter?tab=readme-ov-file#step-2b---add-counterfeitergenerate-directives - A bit more readability on parameters passed to `sendLeave` * spacing * revert some deletes as the complaint was in analytics service only * Declare in package only once. Although the warning is about go:generate multiple times when directly giving the interface to generate, have `go:generate` multiple times in a package even with `-generate` ends up generating once per invocation. Once per package is enough to run the generation just once. --- pkg/routing/roommanager.go | 2 -- pkg/routing/signal.go | 2 -- pkg/rtc/participant.go | 31 ++++++++++++++++++++++++++----- pkg/service/clients.go | 2 -- pkg/service/signal.go | 2 -- pkg/telemetry/analyticsservice.go | 2 +- pkg/telemetry/telemetryservice.go | 4 +++- 7 files changed, 30 insertions(+), 15 deletions(-) diff --git a/pkg/routing/roommanager.go b/pkg/routing/roommanager.go index 327c5806d..796ffe764 100644 --- a/pkg/routing/roommanager.go +++ b/pkg/routing/roommanager.go @@ -24,8 +24,6 @@ import ( "github.com/livekit/psrpc/pkg/middleware" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate - //counterfeiter:generate . RoomManagerClient type RoomManagerClient interface { rpc.TypedRoomManagerClient diff --git a/pkg/routing/signal.go b/pkg/routing/signal.go index 858fab7c1..ce7c5f42d 100644 --- a/pkg/routing/signal.go +++ b/pkg/routing/signal.go @@ -36,8 +36,6 @@ import ( var ErrSignalWriteFailed = errors.New("signal write failed") var ErrSignalMessageDropped = errors.New("signal message dropped") -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate - //counterfeiter:generate . SignalClient type SignalClient interface { ActiveCount() int diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index f7e9937a1..4a5a734d9 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -963,7 +963,12 @@ func (p *ParticipantImpl) Close(sendLeave bool, reason types.ParticipantCloseRea p.clearMigrationTimer() if sendLeave { - p.sendLeaveRequest(reason, isExpectedToResume, false, false) + p.sendLeaveRequest( + reason, + isExpectedToResume, + false, // isExpectedToReconnect + false, // sendOnlyIfSupportingLeaveRequestWithAction + ) } if p.supervisor != nil { @@ -1070,7 +1075,12 @@ func (p *ParticipantImpl) MaybeStartMigration(force bool, onStart func()) bool { onStart() } - p.sendLeaveRequest(types.ParticipantCloseReasonMigrationRequested, true, false, true) + p.sendLeaveRequest( + types.ParticipantCloseReasonMigrationRequested, + true, // isExpectedToResume + false, // isExpectedToReconnect + true, // sendOnlyIfSupportingLeaveRequestWithAction + ) p.CloseSignalConnection(types.SignallingCloseReasonMigration) p.clearMigrationTimer() @@ -1818,8 +1828,14 @@ func (p *ParticipantImpl) setupDisconnectTimer() { } func (p *ParticipantImpl) onAnyTransportFailed() { - // clients support resuming of connections when websocket becomes disconnected - p.sendLeaveRequest(types.ParticipantCloseReasonPeerConnectionDisconnected, true, false, true) + p.sendLeaveRequest( + types.ParticipantCloseReasonPeerConnectionDisconnected, + true, // isExpectedToResume + false, // isExpectedToReconnect + true, // sendOnlyIfSupportingLeaveRequestWithAction + ) + + // clients support resuming of connections when signalling becomes disconnected p.CloseSignalConnection(types.SignallingCloseReasonTransportFailure) // detect when participant has actually left. @@ -2656,7 +2672,12 @@ func (p *ParticipantImpl) GetCachedDownTrack(trackID livekit.TrackID) (*webrtc.R } func (p *ParticipantImpl) IssueFullReconnect(reason types.ParticipantCloseReason) { - p.sendLeaveRequest(reason, false, true, false) + p.sendLeaveRequest( + reason, + false, // isExpectedToResume + true, // isExpectedToReconnect + false, // sendOnlyIfSupportingLeaveRequestWithAction + ) scr := types.SignallingCloseReasonUnknown switch reason { diff --git a/pkg/service/clients.go b/pkg/service/clients.go index 9fd887878..8a0eb39c1 100644 --- a/pkg/service/clients.go +++ b/pkg/service/clients.go @@ -27,8 +27,6 @@ import ( "github.com/livekit/protocol/utils/guid" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate - //counterfeiter:generate . IOClient type IOClient interface { CreateEgress(ctx context.Context, info *livekit.EgressInfo) (*emptypb.Empty, error) diff --git a/pkg/service/signal.go b/pkg/service/signal.go index 742ce51d1..b636aa018 100644 --- a/pkg/service/signal.go +++ b/pkg/service/signal.go @@ -31,8 +31,6 @@ import ( "github.com/livekit/psrpc/pkg/middleware" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate - //counterfeiter:generate . SessionHandler type SessionHandler interface { Logger(ctx context.Context) logger.Logger diff --git a/pkg/telemetry/analyticsservice.go b/pkg/telemetry/analyticsservice.go index 365e7ed05..57873acb0 100644 --- a/pkg/telemetry/analyticsservice.go +++ b/pkg/telemetry/analyticsservice.go @@ -29,7 +29,7 @@ import ( "github.com/livekit/livekit-server/pkg/routing" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . AnalyticsService +//counterfeiter:generate . AnalyticsService type AnalyticsService interface { SendStats(ctx context.Context, stats []*livekit.AnalyticsStat) SendEvent(ctx context.Context, events *livekit.AnalyticsEvent) diff --git a/pkg/telemetry/telemetryservice.go b/pkg/telemetry/telemetryservice.go index 0079c5d5a..ba8ca50df 100644 --- a/pkg/telemetry/telemetryservice.go +++ b/pkg/telemetry/telemetryservice.go @@ -26,7 +26,9 @@ import ( "github.com/livekit/protocol/webhook" ) -//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 . TelemetryService +//go:generate go run github.com/maxbrunsfeld/counterfeiter/v6 -generate + +//counterfeiter:generate . TelemetryService type TelemetryService interface { // TrackStats is called periodically for each track in both directions (published/subscribed) TrackStats(key StatsKey, stat *livekit.AnalyticsStat)