mirror of
https://github.com/aler9/gortsplib
synced 2025-10-06 15:46:51 +08:00
server: always open firewall before sending messages (#666)
This commit is contained in:
@@ -713,6 +713,13 @@ func TestServerRecord(t *testing.T) {
|
||||
doRecord(t, conn, "rtsp://localhost:8554/teststream", session)
|
||||
|
||||
for i := 0; i < 2; i++ {
|
||||
// skip firewall opening
|
||||
if transport == "udp" {
|
||||
buf := make([]byte, 2048)
|
||||
_, _, err = l2s[i].ReadFrom(buf)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// server -> client (direct)
|
||||
if transport == "udp" {
|
||||
buf := make([]byte, 2048)
|
||||
@@ -728,13 +735,6 @@ func TestServerRecord(t *testing.T) {
|
||||
require.Equal(t, testRTCPPacketMarshaled, f.Payload)
|
||||
}
|
||||
|
||||
// skip firewall opening
|
||||
if transport == "udp" {
|
||||
buf := make([]byte, 2048)
|
||||
_, _, err = l2s[i].ReadFrom(buf)
|
||||
require.NoError(t, err)
|
||||
}
|
||||
|
||||
// client -> server
|
||||
if transport == "udp" {
|
||||
_, err = l1s[i].WriteTo(testRTPPacketMarshaled, &net.UDPAddr{
|
||||
|
@@ -60,8 +60,11 @@ func (sm *serverSessionMedia) start() {
|
||||
sm.ss.s.udpRTCPListener.addClient(sm.ss.author.ip(), sm.udpRTCPReadPort, sm.readRTCPUDPPlay)
|
||||
} else {
|
||||
// open the firewall by sending empty packets to the counterpart.
|
||||
sm.ss.WritePacketRTP(sm.media, &rtp.Packet{Header: rtp.Header{Version: 2}}) //nolint:errcheck
|
||||
sm.ss.WritePacketRTCP(sm.media, &rtcp.ReceiverReport{}) //nolint:errcheck
|
||||
byts, _ := (&rtp.Packet{Header: rtp.Header{Version: 2}}).Marshal()
|
||||
sm.ss.s.udpRTPListener.write(byts, sm.udpRTPWriteAddr) //nolint:errcheck
|
||||
|
||||
byts, _ = (&rtcp.ReceiverReport{}).Marshal()
|
||||
sm.ss.s.udpRTCPListener.write(byts, sm.udpRTCPWriteAddr) //nolint:errcheck
|
||||
|
||||
sm.ss.s.udpRTPListener.addClient(sm.ss.author.ip(), sm.udpRTPReadPort, sm.readRTPUDPRecord)
|
||||
sm.ss.s.udpRTCPListener.addClient(sm.ss.author.ip(), sm.udpRTCPReadPort, sm.readRTCPUDPRecord)
|
||||
|
Reference in New Issue
Block a user