Commit ff8f3851 authored by Arlo Breault's avatar Arlo Breault
Browse files

Call explicit frees in proxy-go

parent d0686b1c
Loading
Loading
Loading
Loading
+6 −5
Original line number Original line Diff line number Diff line
@@ -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
	}
	}