mirror of
https://github.com/aler9/gortsplib
synced 2025-10-05 07:06:58 +08:00
ensure server replies to teardown reqeuests (https://github.com/aler9/rtsp-simple-server/issues/151)
This commit is contained in:
@@ -1,7 +1,10 @@
|
||||
package gortsplib
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"io"
|
||||
"net"
|
||||
"strings"
|
||||
"sync"
|
||||
"testing"
|
||||
@@ -267,3 +270,33 @@ func TestServerPublishReadTCP(t *testing.T) {
|
||||
|
||||
require.Equal(t, 0, cnt2.wait())
|
||||
}
|
||||
|
||||
func TestServerTeardown(t *testing.T) {
|
||||
ts, err := newTestServ()
|
||||
require.NoError(t, err)
|
||||
defer ts.close()
|
||||
|
||||
conn, err := net.Dial("tcp", "localhost:8554")
|
||||
require.NoError(t, err)
|
||||
defer conn.Close()
|
||||
bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn))
|
||||
|
||||
req := base.Request{
|
||||
Method: base.Teardown,
|
||||
URL: base.MustParseURL("rtsp://localhost:8554/"),
|
||||
Header: base.Header{
|
||||
"CSeq": base.HeaderValue{"1"},
|
||||
},
|
||||
}
|
||||
err = req.Write(bconn.Writer)
|
||||
require.NoError(t, err)
|
||||
|
||||
var res base.Response
|
||||
err = res.Read(bconn.Reader)
|
||||
require.NoError(t, err)
|
||||
require.Equal(t, base.StatusOK, res.StatusCode)
|
||||
|
||||
buf := make([]byte, 2048)
|
||||
_, err = bconn.Read(buf)
|
||||
require.Equal(t, io.EOF, err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user