expose InterleavedFrame read/write functions

This commit is contained in:
aler9
2020-07-19 18:09:46 +02:00
parent 28192f091b
commit a110f2b6a2
4 changed files with 12 additions and 10 deletions

View File

@@ -84,7 +84,7 @@ func (as *AuthServer) GenerateHeader() HeaderValue {
}
// ValidateHeader validates the Authorization header sent by a client after receiving the
// WWW-Authenticate header provided by GenerateHeader().
// WWW-Authenticate header.
func (as *AuthServer) ValidateHeader(v HeaderValue, method Method, ur *url.URL) error {
if len(v) == 0 {
return fmt.Errorf("authorization header not provided")

View File

@@ -81,7 +81,7 @@ func (c *ConnClient) NetConn() net.Conn {
// ReadFrame reads an InterleavedFrame.
func (c *ConnClient) ReadFrame(frame *InterleavedFrame) error {
c.conf.Conn.SetReadDeadline(time.Now().Add(c.conf.ReadTimeout))
return frame.read(c.br)
return frame.Read(c.br)
}
// ReadFrameOrResponse reads an InterleavedFrame or a Response.
@@ -94,7 +94,7 @@ func (c *ConnClient) ReadFrameOrResponse(frame *InterleavedFrame) (interface{},
c.br.UnreadByte()
if b == interleavedFrameMagicByte {
err := frame.read(c.br)
err := frame.Read(c.br)
if err != nil {
return nil, err
}
@@ -175,7 +175,7 @@ func (c *ConnClient) Do(req *Request) (*Response, error) {
// WriteFrame writes an InterleavedFrame.
func (c *ConnClient) WriteFrame(frame *InterleavedFrame) error {
c.conf.Conn.SetWriteDeadline(time.Now().Add(c.conf.WriteTimeout))
return frame.write(c.bw)
return frame.Write(c.bw)
}
// Options writes an OPTIONS request and reads a response, that contains

View File

@@ -69,7 +69,7 @@ func (s *ConnServer) ReadFrameOrRequest(frame *InterleavedFrame) (interface{}, e
s.br.UnreadByte()
if b == interleavedFrameMagicByte {
err := frame.read(s.br)
err := frame.Read(s.br)
if err != nil {
return nil, err
}
@@ -88,5 +88,5 @@ func (s *ConnServer) WriteResponse(res *Response) error {
// WriteFrame writes an InterleavedFrame.
func (s *ConnServer) WriteFrame(frame *InterleavedFrame) error {
s.conf.Conn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
return frame.write(s.bw)
return frame.Write(s.bw)
}

View File

@@ -24,9 +24,10 @@ type InterleavedFrame struct {
Content []byte
}
func (f *InterleavedFrame) read(r io.Reader) error {
// Read reads an interleaved frame from a buffered reader.
func (f *InterleavedFrame) Read(br *bufio.Reader) error {
var header [4]byte
_, err := io.ReadFull(r, header[:])
_, err := io.ReadFull(br, header[:])
if err != nil {
return err
}
@@ -52,14 +53,15 @@ func (f *InterleavedFrame) read(r io.Reader) error {
f.Content = f.Content[:framelen]
_, err = io.ReadFull(r, f.Content)
_, err = io.ReadFull(br, f.Content)
if err != nil {
return err
}
return nil
}
func (f *InterleavedFrame) write(bw *bufio.Writer) error {
// Write writes an InterleavedFrame into a buffered writer.
func (f *InterleavedFrame) Write(bw *bufio.Writer) error {
// convert TrackId and StreamType into channel
channel := func() uint8 {
if f.StreamType == StreamTypeRtp {