diff --git a/go.mod b/go.mod index 905a448fa..9a38679bd 100644 --- a/go.mod +++ b/go.mod @@ -35,7 +35,7 @@ require ( github.com/pion/interceptor v0.1.44 github.com/pion/rtcp v1.2.16 github.com/pion/rtp v1.10.1 - github.com/pion/sctp v1.9.4 + github.com/pion/sctp v1.9.5 github.com/pion/sdp/v3 v3.0.18 github.com/pion/transport/v4 v4.0.1 github.com/pion/turn/v4 v4.1.4 diff --git a/go.sum b/go.sum index 9a7d95065..cba317d57 100644 --- a/go.sum +++ b/go.sum @@ -270,8 +270,8 @@ github.com/pion/rtcp v1.2.16 h1:fk1B1dNW4hsI78XUCljZJlC4kZOPk67mNRuQ0fcEkSo= github.com/pion/rtcp v1.2.16/go.mod h1:/as7VKfYbs5NIb4h6muQ35kQF/J0ZVNz2Z3xKoCBYOo= github.com/pion/rtp v1.10.1 h1:xP1prZcCTUuhO2c83XtxyOHJteISg6o8iPsE2acaMtA= github.com/pion/rtp v1.10.1/go.mod h1:rF5nS1GqbR7H/TCpKwylzeq6yDM+MM6k+On5EgeThEM= -github.com/pion/sctp v1.9.4 h1:cMxEu0F5tbP4qH07bKf1Zjf4rUih9LIo0qQt424e258= -github.com/pion/sctp v1.9.4/go.mod h1:N20Dq6LY+JvJDAh9VVh1JELngb2rQ8dPgds5yBWiPgw= +github.com/pion/sctp v1.9.5 h1:QoSFB/drmAsmSeSFNQNI3xx010nW4HsycCZckRVWWag= +github.com/pion/sctp v1.9.5/go.mod h1:N20Dq6LY+JvJDAh9VVh1JELngb2rQ8dPgds5yBWiPgw= github.com/pion/sdp/v3 v3.0.18 h1:l0bAXazKHpepazVdp+tPYnrsy9dfh7ZbT8DxesH5ZnI= github.com/pion/sdp/v3 v3.0.18/go.mod h1:ZREGo6A9ZygQ9XkqAj5xYCQtQpif0i6Pa81HOiAdqQ8= github.com/pion/srtp/v3 v3.0.10 h1:tFirkpBb3XccP5VEXLi50GqXhv5SKPxqrdlhDCJlZrQ= diff --git a/pkg/rtc/participant.go b/pkg/rtc/participant.go index b8e65cf84..433da1442 100644 --- a/pkg/rtc/participant.go +++ b/pkg/rtc/participant.go @@ -1170,6 +1170,9 @@ func (p *ParticipantImpl) HandleOffer(sd *livekit.SessionDescription) error { func (p *ParticipantImpl) onPublisherSetRemoteDescription() { offer := p.TransportManager.LastPublisherOfferPending() + if offer == nil { + return + } parsedOffer, err := offer.Unmarshal() if err != nil { p.pubLogger.Warnw("could not parse offer", err) diff --git a/pkg/rtc/transport.go b/pkg/rtc/transport.go index 596fdd95c..6c0e34ac0 100644 --- a/pkg/rtc/transport.go +++ b/pkg/rtc/transport.go @@ -1531,6 +1531,10 @@ func (t *PCTransport) Close() { return } + if err := t.pc.Close(); err != nil { + t.params.Logger.Warnw("unclean close of peer connection", err) + } + <-t.eventsQueue.Stop() t.clearSignalStateCheckTimer() @@ -1571,10 +1575,6 @@ func (t *PCTransport) Close() { t.unlabeledDataChannels = nil t.lock.Unlock() - if err := t.pc.Close(); err != nil { - t.params.Logger.Warnw("unclean close of peer connection", err) - } - t.outputAndClearICEStats() }