in Stream::SendQuickAck use Packet * instead of Packet

in Stream::HandleNextPacket process m_SavedPackets for all seqno < m_LastReceivedSequenceNumber + 1
This commit is contained in:
Jeff Becker 2016-03-27 08:11:33 -04:00
parent 598d0e216a
commit f6f38de2db
No known key found for this signature in database
GPG key ID: AB950234D6EA286B

View file

@ -96,7 +96,7 @@ namespace stream
// we should also try stored messages if any // we should also try stored messages if any
for (auto it = m_SavedPackets.begin (); it != m_SavedPackets.end ();) for (auto it = m_SavedPackets.begin (); it != m_SavedPackets.end ();)
{ {
if ((*it)->GetSeqn () == (uint32_t)(m_LastReceivedSequenceNumber + 1)) if ((*it)->GetSeqn () < (uint32_t)(m_LastReceivedSequenceNumber + 1))
{ {
Packet * savedPacket = *it; Packet * savedPacket = *it;
m_SavedPackets.erase (it++); m_SavedPackets.erase (it++);
@ -420,8 +420,8 @@ namespace stream
return; return;
} }
Packet p; Packet * p = new Packet;
uint8_t * packet = p.GetBuffer (); uint8_t * packet = p->GetBuffer ();
size_t size = 0; size_t size = 0;
htobe32buf (packet + size, m_SendStreamID); htobe32buf (packet + size, m_SendStreamID);
size += 4; // sendStreamID size += 4; // sendStreamID
@ -469,9 +469,9 @@ namespace stream
size += 2; // flags size += 2; // flags
htobuf16 (packet + size, 0); // no options htobuf16 (packet + size, 0); // no options
size += 2; // options size size += 2; // options size
p.len = size; p->len = size;
SendPackets (std::vector<Packet *> { &p }); SendPackets (std::vector<Packet *> { p });
LogPrint (eLogDebug, "Streaming: Quick Ack sent. ", (int)numNacks, " NACKs"); LogPrint (eLogDebug, "Streaming: Quick Ack sent. ", (int)numNacks, " NACKs");
} }