Check ForwardParticipant room name (#3514)

This commit is contained in:
cnderrauber
2025-03-11 10:07:05 +08:00
committed by GitHub
parent 9a7c944252
commit 6121b9af5e
2 changed files with 5 additions and 0 deletions
+1
View File
@@ -30,6 +30,7 @@ var (
ErrAttributeExceedsLimits = psrpc.NewErrorf(psrpc.InvalidArgument, "attribute size exceeds limits")
ErrRoomNameExceedsLimits = psrpc.NewErrorf(psrpc.InvalidArgument, "room name length exceeds limits")
ErrParticipantIdentityExceedsLimits = psrpc.NewErrorf(psrpc.InvalidArgument, "participant identity length exceeds limits")
ErrForwardToSameRoom = psrpc.NewErrorf(psrpc.InvalidArgument, "cannot forward to the same room")
ErrOperationFailed = psrpc.NewErrorf(psrpc.Internal, "operation cannot be completed")
ErrParticipantNotFound = psrpc.NewErrorf(psrpc.NotFound, "participant does not exist")
ErrRoomNotFound = psrpc.NewErrorf(psrpc.NotFound, "requested room does not exist")
+4
View File
@@ -316,6 +316,10 @@ func (s *RoomService) ForwardParticipant(ctx context.Context, req *livekit.Forwa
return nil, twirpAuthError(err)
}
if req.Room == req.DestinationRoom {
return nil, twirp.InvalidArgumentError(ErrForwardToSameRoom.Error(), "")
}
res, err := s.participantClient.ForwardParticipant(ctx, s.topicFormatter.ParticipantTopic(ctx, livekit.RoomName(req.Room), livekit.ParticipantIdentity(req.Identity)), req)
RecordResponse(ctx, res)
return res, err