mirror of
https://github.com/aler9/gortsplib
synced 2025-10-06 23:52:46 +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)
|
doRecord(t, conn, "rtsp://localhost:8554/teststream", session)
|
||||||
|
|
||||||
for i := 0; i < 2; i++ {
|
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)
|
// server -> client (direct)
|
||||||
if transport == "udp" {
|
if transport == "udp" {
|
||||||
buf := make([]byte, 2048)
|
buf := make([]byte, 2048)
|
||||||
@@ -728,13 +735,6 @@ func TestServerRecord(t *testing.T) {
|
|||||||
require.Equal(t, testRTCPPacketMarshaled, f.Payload)
|
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
|
// client -> server
|
||||||
if transport == "udp" {
|
if transport == "udp" {
|
||||||
_, err = l1s[i].WriteTo(testRTPPacketMarshaled, &net.UDPAddr{
|
_, 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)
|
sm.ss.s.udpRTCPListener.addClient(sm.ss.author.ip(), sm.udpRTCPReadPort, sm.readRTCPUDPPlay)
|
||||||
} else {
|
} else {
|
||||||
// open the firewall by sending empty packets to the counterpart.
|
// open the firewall by sending empty packets to the counterpart.
|
||||||
sm.ss.WritePacketRTP(sm.media, &rtp.Packet{Header: rtp.Header{Version: 2}}) //nolint:errcheck
|
byts, _ := (&rtp.Packet{Header: rtp.Header{Version: 2}}).Marshal()
|
||||||
sm.ss.WritePacketRTCP(sm.media, &rtcp.ReceiverReport{}) //nolint:errcheck
|
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.udpRTPListener.addClient(sm.ss.author.ip(), sm.udpRTPReadPort, sm.readRTPUDPRecord)
|
||||||
sm.ss.s.udpRTCPListener.addClient(sm.ss.author.ip(), sm.udpRTCPReadPort, sm.readRTCPUDPRecord)
|
sm.ss.s.udpRTCPListener.addClient(sm.ss.author.ip(), sm.udpRTCPReadPort, sm.readRTCPUDPRecord)
|
||||||
|
Reference in New Issue
Block a user