diff --git a/internal/webrtc/client.go b/internal/webrtc/client.go index 5fbf2175..7a9fbba8 100644 --- a/internal/webrtc/client.go +++ b/internal/webrtc/client.go @@ -190,6 +190,12 @@ func whepClient(url string) (core.Producer, error) { return nil, err } + defer func() { + if err != nil { + _ = pc.Close() + } + }() + prod := webrtc.NewConn(pc) prod.Mode = core.ModeActiveProducer prod.Protocol = "http" diff --git a/internal/webrtc/client_creality.go b/internal/webrtc/client_creality.go index 4618044e..dc50dacb 100644 --- a/internal/webrtc/client_creality.go +++ b/internal/webrtc/client_creality.go @@ -20,6 +20,12 @@ func crealityClient(url string) (core.Producer, error) { return nil, err } + defer func() { + if err != nil { + _ = pc.Close() + } + }() + prod := webrtc.NewConn(pc) prod.FormatName = "webrtc/creality" prod.Mode = core.ModeActiveProducer diff --git a/internal/webrtc/kinesis.go b/internal/webrtc/kinesis.go index 8bfaeb9b..d35d69dd 100644 --- a/internal/webrtc/kinesis.go +++ b/internal/webrtc/kinesis.go @@ -68,6 +68,12 @@ func kinesisClient( return nil, err } + defer func() { + if err != nil { + _ = pc.Close() + } + }() + // protect from sending ICE candidate before Offer var sendOffer core.Waiter diff --git a/internal/webrtc/milestone.go b/internal/webrtc/milestone.go index 6d012a15..d9d066b4 100644 --- a/internal/webrtc/milestone.go +++ b/internal/webrtc/milestone.go @@ -192,6 +192,12 @@ func milestoneClient(rawURL string, query url.Values) (core.Producer, error) { return nil, err } + defer func() { + if err != nil { + _ = pc.Close() + } + }() + prod := webrtc.NewConn(pc) prod.FormatName = "webrtc/milestone" prod.Mode = core.ModeActiveProducer diff --git a/internal/webrtc/openipc.go b/internal/webrtc/openipc.go index 2f2db119..9c2bc5fb 100644 --- a/internal/webrtc/openipc.go +++ b/internal/webrtc/openipc.go @@ -43,6 +43,12 @@ func openIPCClient(rawURL string, query url.Values) (core.Producer, error) { return nil, err } + defer func() { + if err != nil { + _ = pc.Close() + } + }() + // protect from sending ICE candidate before Offer var sendAnswer core.Waiter