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
This commit is contained in:
narspt 2021-04-10 02:34:49 +01:00 committed by GitHub
parent 94b725f452
commit f7ce6d02fa
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 1 deletions

View File

@ -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;