fix dplus sending header packets inconsistently

depending on the number of dplus clients connected on the reflector, in some cases (for eg. with 3 or 6 clients connected) only one client could actually get lots of header packets and the other clients get none
pull/193/head
narspt 5 years ago committed by GitHub
parent 94b725f452
commit f7ce6d02fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -315,7 +315,7 @@ void CDplusProtocol::HandleQueue(void)
m_Socket.Send(buffer, client->GetIp());
// is it time to insert a DVheader copy ?
if ( (m_StreamsCache[iModId].m_iSeqCounter++ % 21) == 20 )
if ( (m_StreamsCache[iModId].m_iSeqCounter % 21) == 20 )
{
// yes, clone it
CDvHeaderPacket packet2(m_StreamsCache[iModId].m_dvHeader);
@ -333,6 +333,10 @@ void CDplusProtocol::HandleQueue(void)
g_Reflector.ReleaseClients();
}
if ( packet->IsDvFrame() )
{
m_StreamsCache[iModId].m_iSeqCounter++;
}
// done
delete packet;

Loading…
Cancel
Save

Powered by TurnKey Linux.