mirror of
https://github.com/aler9/gortsplib
synced 2025-10-06 23:52:46 +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
|
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 {
|
func (c *ConnClient) writeRequest(req *Request) error {
|
||||||
if req.Header == nil {
|
if req.Header == nil {
|
||||||
req.Header = make(Header)
|
req.Header = make(Header)
|
||||||
@@ -143,32 +169,6 @@ func (c *ConnClient) WriteRequestNoResponse(req *Request) error {
|
|||||||
return c.writeRequest(req)
|
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.
|
// WriteInterleavedFrame writes an InterleavedFrame.
|
||||||
func (c *ConnClient) WriteInterleavedFrame(frame *InterleavedFrame) error {
|
func (c *ConnClient) WriteInterleavedFrame(frame *InterleavedFrame) error {
|
||||||
c.conf.NConn.SetWriteDeadline(time.Now().Add(c.conf.WriteTimeout))
|
c.conf.NConn.SetWriteDeadline(time.Now().Add(c.conf.WriteTimeout))
|
||||||
|
@@ -68,18 +68,32 @@ func (s *ConnServer) ReadRequest() (*Request, error) {
|
|||||||
return readRequest(s.br)
|
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.
|
// WriteResponse writes a response.
|
||||||
func (s *ConnServer) WriteResponse(res *Response) error {
|
func (s *ConnServer) WriteResponse(res *Response) error {
|
||||||
s.conf.NConn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
|
s.conf.NConn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
|
||||||
return res.write(s.bw)
|
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.
|
// WriteInterleavedFrame writes an InterleavedFrame.
|
||||||
func (s *ConnServer) WriteInterleavedFrame(frame *InterleavedFrame) error {
|
func (s *ConnServer) WriteInterleavedFrame(frame *InterleavedFrame) error {
|
||||||
s.conf.NConn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
|
s.conf.NConn.SetWriteDeadline(time.Now().Add(s.conf.WriteTimeout))
|
||||||
|
Reference in New Issue
Block a user