webtorrent/tracker-client.go | 1 + webtorrent/transport.go | 2 ++ diff --git a/webtorrent/tracker-client.go b/webtorrent/tracker-client.go index b0ca6c2c35289de8bcb89864fc4e1a1db2cf33b2..195c06b033dee4c1bf743b64df37a6ad38ea859f 100644 --- a/webtorrent/tracker-client.go +++ b/webtorrent/tracker-client.go @@ -234,6 +234,7 @@ dataChannel: dc, }}, }) if err != nil { + dc.Close() pc.Close() } return err diff --git a/webtorrent/transport.go b/webtorrent/transport.go index 852990860e00d9e27b0b4a81d26a2d4c90647e64..d60fb7a7028e5bbd28821b567b1c828d83ebaefb 100644 --- a/webtorrent/transport.go +++ b/webtorrent/transport.go @@ -127,12 +127,14 @@ }) offer, err = peerConnection.CreateOffer(nil) if err != nil { + dataChannel.Close() peerConnection.Close() return } offer, err = setAndGatherLocalDescription(peerConnection, offer) if err != nil { + dataChannel.Close() peerConnection.Close() } return