diff --git a/server_publish_test.go b/server_publish_test.go index c193cbdb..b2f618ad 100644 --- a/server_publish_test.go +++ b/server_publish_test.go @@ -2,6 +2,7 @@ package gortsplib import ( "bufio" + "crypto/tls" "net" "strconv" "sync/atomic" @@ -989,6 +990,7 @@ func TestServerPublishErrorTimeout(t *testing.T) { for _, proto := range []string{ "udp", "tcp", + "tls", } { t.Run(proto, func(t *testing.T) { errDone := make(chan struct{}) @@ -1022,18 +1024,31 @@ func TestServerPublishErrorTimeout(t *testing.T) { ReadTimeout: 1 * time.Second, } - if proto == "udp" { + switch proto { + case "udp": s.UDPRTPAddress = "127.0.0.1:8000" s.UDPRTCPAddress = "127.0.0.1:8001" + + case "tls": + cert, err := tls.X509KeyPair(serverCert, serverKey) + require.NoError(t, err) + s.TLSConfig = &tls.Config{Certificates: []tls.Certificate{cert}} } err := s.Start("127.0.0.1:8554") require.NoError(t, err) defer s.Close() - conn, err := net.Dial("tcp", "localhost:8554") + nconn, err := net.Dial("tcp", "localhost:8554") require.NoError(t, err) - defer conn.Close() + defer nconn.Close() + + conn := func() net.Conn { + if proto == "tls" { + return tls.Client(nconn, &tls.Config{InsecureSkipVerify: true}) + } + return nconn + }() bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)) track, err := NewTrackH264(96, []byte("123456"), []byte("123456")) diff --git a/server_read_test.go b/server_read_test.go index f4165977..41c0c5e9 100644 --- a/server_read_test.go +++ b/server_read_test.go @@ -2,6 +2,7 @@ package gortsplib import ( "bufio" + "crypto/tls" "net" "testing" "time" @@ -267,6 +268,7 @@ func TestServerRead(t *testing.T) { for _, proto := range []string{ "udp", "tcp", + "tls", } { t.Run(proto, func(t *testing.T) { connOpened := make(chan struct{}) @@ -309,16 +311,32 @@ func TestServerRead(t *testing.T) { close(framesReceived) }, }, - UDPRTPAddress: "127.0.0.1:8000", - UDPRTCPAddress: "127.0.0.1:8001", + } + + switch proto { + case "udp": + s.UDPRTPAddress = "127.0.0.1:8000" + s.UDPRTCPAddress = "127.0.0.1:8001" + + case "tls": + cert, err := tls.X509KeyPair(serverCert, serverKey) + require.NoError(t, err) + s.TLSConfig = &tls.Config{Certificates: []tls.Certificate{cert}} } err := s.Start("127.0.0.1:8554") require.NoError(t, err) defer s.Close() - conn, err := net.Dial("tcp", "localhost:8554") + nconn, err := net.Dial("tcp", "localhost:8554") require.NoError(t, err) + + conn := func() net.Conn { + if proto == "tls" { + return tls.Client(nconn, &tls.Config{InsecureSkipVerify: true}) + } + return nconn + }() bconn := bufio.NewReadWriter(bufio.NewReader(conn), bufio.NewWriter(conn)) <-connOpened @@ -451,7 +469,7 @@ func TestServerRead(t *testing.T) { <-sessionClosed - conn.Close() + nconn.Close() <-connClosed }) }