diff --git a/server_read_test.go b/server_read_test.go index 060f322d..0f409a63 100644 --- a/server_read_test.go +++ b/server_read_test.go @@ -470,13 +470,6 @@ func TestServerRead(t *testing.T) { require.NoError(t, err) require.Equal(t, base.StatusOK, res.StatusCode) - // skip firewall opening - if transport == "udp" { - buf := make([]byte, 2048) - _, _, err := l2.ReadFrom(buf) - require.NoError(t, err) - } - // server -> client (direct) switch transport { case "udp": @@ -504,6 +497,13 @@ func TestServerRead(t *testing.T) { } } + // skip firewall opening + if transport == "udp" { + buf := make([]byte, 2048) + _, _, err := l2.ReadFrom(buf) + require.NoError(t, err) + } + // server -> client (through stream) if transport == "udp" || transport == "multicast" { buf := make([]byte, 2048) diff --git a/serversession.go b/serversession.go index dd34815f..81e16b71 100644 --- a/serversession.go +++ b/serversession.go @@ -868,9 +868,7 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base sc.s.udpRTCPListener.addClient(ss.author.ip(), track.udpRTCPPort, ss, trackID, false) // open the firewall by sending packets to the counterpart - byts, _ := (&rtcp.ReceiverReport{}).Marshal() - ss.s.udpRTCPListener.write(byts, - ss.setuppedTracks[trackID].udpRTCPAddr) + ss.WritePacketRTCP(trackID, &rtcp.ReceiverReport{}) } case TransportUDPMulticast: @@ -998,10 +996,8 @@ func (ss *ServerSession) handleRequest(sc *ServerConn, req *base.Request) (*base ss.s.udpRTCPListener.addClient(ss.author.ip(), track.udpRTCPPort, ss, trackID, true) // open the firewall by sending packets to the counterpart - byts, _ := (&rtp.Packet{Header: rtp.Header{Version: 2}}).Marshal() - ss.s.udpRTPListener.write(byts, ss.setuppedTracks[trackID].udpRTPAddr) - byts, _ = (&rtcp.ReceiverReport{}).Marshal() - ss.s.udpRTCPListener.write(byts, ss.setuppedTracks[trackID].udpRTCPAddr) + ss.WritePacketRTP(trackID, &rtp.Packet{Header: rtp.Header{Version: 2}}) + ss.WritePacketRTCP(trackID, &rtcp.ReceiverReport{}) } default: // TCP