don't hide trickle decode errors

This commit is contained in:
David Zhao
2021-05-06 00:10:23 -07:00
parent 0eb29cc651
commit f60b356807
3 changed files with 15 additions and 5 deletions
+4 -1
View File
@@ -241,7 +241,10 @@ func (c *RTCClient) Run() error {
return err
}
case *livekit.SignalResponse_Trickle:
candidateInit := rtc.FromProtoTrickle(msg.Trickle)
candidateInit, err := rtc.FromProtoTrickle(msg.Trickle)
if err != nil {
return err
}
if msg.Trickle.Target == livekit.SignalTarget_PUBLISHER {
err = c.publisher.AddICECandidate(candidateInit)
} else {
+6 -3
View File
@@ -84,10 +84,13 @@ func ToProtoTrickle(candidateInit webrtc.ICECandidateInit) *livekit.TrickleReque
}
}
func FromProtoTrickle(trickle *livekit.TrickleRequest) webrtc.ICECandidateInit {
func FromProtoTrickle(trickle *livekit.TrickleRequest) (webrtc.ICECandidateInit, error) {
ci := webrtc.ICECandidateInit{}
json.Unmarshal([]byte(trickle.CandidateInit), &ci)
return ci
err := json.Unmarshal([]byte(trickle.CandidateInit), &ci)
if err != nil {
return webrtc.ICECandidateInit{}, err
}
return ci, nil
}
func ToProtoTrack(t types.PublishedTrack) *livekit.TrackInfo {
+5 -1
View File
@@ -332,7 +332,11 @@ func (r *RoomManager) rtcSessionWorker(room *rtc.Room, participant types.Partici
logger.Errorw("could not handle answer", "participant", participant.Identity(), "err", err)
}
case *livekit.SignalRequest_Trickle:
candidateInit := rtc.FromProtoTrickle(msg.Trickle)
candidateInit, err := rtc.FromProtoTrickle(msg.Trickle)
if err != nil {
logger.Errorw("could not decode trickle", "participant", participant.Identity(), "err", err)
break
}
//logger.Debugw("adding peer candidate", "participant", participant.ID())
if err := participant.AddICECandidate(candidateInit, msg.Trickle.Target); err != nil {
logger.Errorw("could not handle trickle", "participant", participant.Identity(), "err", err)