Call explicit frees in proxy-go

This commit is contained in:
Arlo Breault 2018-03-05 18:06:51 -05:00
parent d0686b1c8d
commit ff8f385108

View file

@ -76,7 +76,7 @@ func (c *webRTCConn) Write(b []byte) (int, error) {
} }
func (c *webRTCConn) Close() error { func (c *webRTCConn) Close() error {
return c.pc.Close() return c.pc.Destroy()
} }
func (c *webRTCConn) LocalAddr() net.Addr { func (c *webRTCConn) LocalAddr() net.Addr {
@ -271,6 +271,7 @@ func makePeerConnectionFromOffer(sdp *webrtc.SessionDescription, config *webrtc.
dc.OnClose = func() { dc.OnClose = func() {
log.Println("OnClose channel") log.Println("OnClose channel")
pw.Close() pw.Close()
pc.DeleteDataChannel(dc)
} }
dc.OnMessage = func(msg []byte) { dc.OnMessage = func(msg []byte) {
log.Printf("OnMessage <--- %d bytes", len(msg)) log.Printf("OnMessage <--- %d bytes", len(msg))
@ -289,7 +290,7 @@ func makePeerConnectionFromOffer(sdp *webrtc.SessionDescription, config *webrtc.
err = pc.SetRemoteDescription(sdp) err = pc.SetRemoteDescription(sdp)
if err != nil { if err != nil {
pc.Close() pc.Destroy()
return nil, fmt.Errorf("accept: SetRemoteDescription: %s", err) return nil, fmt.Errorf("accept: SetRemoteDescription: %s", err)
} }
log.Println("sdp offer successfully received.") log.Println("sdp offer successfully received.")
@ -311,11 +312,11 @@ func makePeerConnectionFromOffer(sdp *webrtc.SessionDescription, config *webrtc.
// Wait until answer is ready. // Wait until answer is ready.
select { select {
case err = <-errChan: case err = <-errChan:
pc.Close() pc.Destroy()
return nil, err return nil, err
case _, ok := <-answerChan: case _, ok := <-answerChan:
if !ok { if !ok {
pc.Close() pc.Destroy()
return nil, fmt.Errorf("Failed gathering ICE candidates.") return nil, fmt.Errorf("Failed gathering ICE candidates.")
} }
} }
@ -338,7 +339,7 @@ func runSession(sid string) {
err = sendAnswer(sid, pc) err = sendAnswer(sid, pc)
if err != nil { if err != nil {
log.Printf("error sending answer to client through broker: %s", err) log.Printf("error sending answer to client through broker: %s", err)
pc.Close() pc.Destroy()
retToken() retToken()
return return
} }