Remove buffered reader from data channel.

master
Icedream 2019-07-11 14:49:07 +02:00
parent 7bde2357f3
commit 6f5b605ea7
Signed by: icedream
GPG Key ID: 1573F6D8EFE4D0CF
1 changed files with 6 additions and 9 deletions

View File

@ -1,7 +1,6 @@
package internal package internal
import ( import (
"bufio"
"bytes" "bytes"
"encoding/json" "encoding/json"
"errors" "errors"
@ -14,11 +13,10 @@ import (
type DataChannel struct { type DataChannel struct {
dataChannel *webrtc.DataChannel dataChannel *webrtc.DataChannel
rawDataLock sync.RWMutex rawDataLock sync.RWMutex
rawDataWriter *io.PipeWriter rawDataWriter *io.PipeWriter
rawDataReaderBuffered *bufio.Reader rawDataReader *io.PipeReader
rawDataReader *io.PipeReader rawDataRest uint64
rawDataRest uint64
bufferWaitChannel chan interface{} bufferWaitChannel chan interface{}
closeWaitChannel chan interface{} closeWaitChannel chan interface{}
@ -177,7 +175,6 @@ func (conn *DataChannel) ExpectRawData(expectedLength uint64) {
defer conn.rawDataLock.Unlock() defer conn.rawDataLock.Unlock()
conn.rawDataReader, conn.rawDataWriter = io.Pipe() conn.rawDataReader, conn.rawDataWriter = io.Pipe()
conn.rawDataReaderBuffered = bufio.NewReaderSize(conn.rawDataReader, 16*1024*1024)
conn.rawDataRest = expectedLength conn.rawDataRest = expectedLength
} }
@ -199,12 +196,12 @@ func (conn *DataChannel) SendMessage(msg *Message) (err error) {
} }
func (conn *DataChannel) Read(p []byte) (n int, err error) { func (conn *DataChannel) Read(p []byte) (n int, err error) {
if conn.rawDataReaderBuffered == nil { if conn.rawDataReader == nil {
err = errors.New("Unexpected raw data read") err = errors.New("Unexpected raw data read")
return return
} }
n, err = conn.rawDataReaderBuffered.Read(p) n, err = conn.rawDataReader.Read(p)
return return
} }