mirror of
https://github.com/aler9/gortsplib
synced 2025-10-06 15:46:51 +08:00
add ConnServer.ReadInterleavedFrameOrRequest(); remove ConnServer.ReadInterleavedFrame()
This commit is contained in:
@@ -78,6 +78,32 @@ func (c *ConnClient) NetConn() net.Conn {
|
||||
return c.conf.NConn
|
||||
}
|
||||
|
||||
// ReadInterleavedFrameOrResponse reads an InterleavedFrame or a Response.
|
||||
func (c *ConnClient) ReadInterleavedFrameOrResponse(frame *InterleavedFrame) (interface{}, error) {
|
||||
c.conf.NConn.SetReadDeadline(time.Now().Add(c.conf.ReadTimeout))
|
||||
b, err := c.br.ReadByte()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c.br.UnreadByte()
|
||||
|
||||
if b == _INTERLEAVED_FRAME_MAGIC {
|
||||
err := frame.read(c.br)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return frame, err
|
||||
}
|
||||
|
||||
return readResponse(c.br)
|
||||
}
|
||||
|
||||
// ReadInterleavedFrame reads an InterleavedFrame.
|
||||
func (c *ConnClient) ReadInterleavedFrame(frame *InterleavedFrame) error {
|
||||
c.conf.NConn.SetReadDeadline(time.Now().Add(c.conf.ReadTimeout))
|
||||
return frame.read(c.br)
|
||||
}
|
||||
|
||||
func (c *ConnClient) writeRequest(req *Request) error {
|
||||
if req.Header == nil {
|
||||
req.Header = make(Header)
|
||||
@@ -143,32 +169,6 @@ func (c *ConnClient) WriteRequestNoResponse(req *Request) error {
|
||||
return c.writeRequest(req)
|
||||
}
|
||||
|
||||
// ReadInterleavedFrameOrResponse reads an InterleavedFrame or a Response.
|
||||
func (c *ConnClient) ReadInterleavedFrameOrResponse(frame *InterleavedFrame) (interface{}, error) {
|
||||
c.conf.NConn.SetReadDeadline(time.Now().Add(c.conf.ReadTimeout))
|
||||
b, err := c.br.ReadByte()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
c.br.UnreadByte()
|
||||
|
||||
if b == _INTERLEAVED_FRAME_MAGIC {
|
||||
err := frame.read(c.br)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return frame, err
|
||||
}
|
||||
|
||||
return readResponse(c.br)
|
||||
}
|
||||
|
||||
// ReadInterleavedFrame reads an InterleavedFrame.
|
||||
func (c *ConnClient) ReadInterleavedFrame(frame *InterleavedFrame) error {
|
||||
c.conf.NConn.SetReadDeadline(time.Now().Add(c.conf.ReadTimeout))
|
||||
return frame.read(c.br)
|
||||
}
|
||||
|
||||
// WriteInterleavedFrame writes an InterleavedFrame.
|
||||
func (c *ConnClient) WriteInterleavedFrame(frame *InterleavedFrame) error {
|
||||
c.conf.NConn.SetWriteDeadline(time.Now().Add(c.conf.WriteTimeout))
|
||||
|
@@ -68,18 +68,32 @@ func (s *ConnServer) ReadRequest() (*Request, error) {
|
||||
return readRequest(s.br)
|
||||
}
|
||||
|
||||
// ReadInterleavedFrameOrRequest reads an InterleavedFrame or a Request.
|
||||
func (s *ConnServer) ReadInterleavedFrameOrRequest(frame *InterleavedFrame) (interface{}, error) {
|
||||
s.conf.NConn.SetReadDeadline(time.Time{}) // disable deadline
|
||||
b, err := s.br.ReadByte()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
s.br.UnreadByte()
|
||||
|
||||
if b == _INTERLEAVED_FRAME_MAGIC {
|
||||
err := frame.read(s.br)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return frame, err
|
||||
}
|
||||
|
||||
return readRequest(s.br)
|
||||
}
|
||||
|
||||
// WriteResponse writes a response.
|
||||
func (s *ConnServer) WriteResponse(res *Response) error {
|
||||
s.conf.NConn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
|
||||
return res.write(s.bw)
|
||||
}
|
||||
|
||||
// ReadInterleavedFrame reads an InterleavedFrame.
|
||||
func (s *ConnServer) ReadInterleavedFrame(frame *InterleavedFrame) error {
|
||||
s.conf.NConn.SetReadDeadline(time.Now().Add(s.conf.ReadTimeout))
|
||||
return frame.read(s.br)
|
||||
}
|
||||
|
||||
// WriteInterleavedFrame writes an InterleavedFrame.
|
||||
func (s *ConnServer) WriteInterleavedFrame(frame *InterleavedFrame) error {
|
||||
s.conf.NConn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
|
||||
|
Reference in New Issue
Block a user