From 11177d37ea531c008cdbfcf46900f25bd93c7ece Mon Sep 17 00:00:00 2001 From: orignal Date: Thu, 9 Apr 2015 21:09:30 -0400 Subject: [PATCH] send and handle RESET flag --- Streaming.cpp | 10 +++++----- Streaming.h | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/Streaming.cpp b/Streaming.cpp index 6f431264..c7b38f51 100644 --- a/Streaming.cpp +++ b/Streaming.cpp @@ -222,9 +222,9 @@ namespace stream m_LastReceivedSequenceNumber = receivedSeqn; - if (flags & PACKET_FLAG_CLOSE) + if (flags & (PACKET_FLAG_CLOSE | PACKET_FLAG_RESET)) { - LogPrint (eLogInfo, "Closed"); + LogPrint (eLogInfo, (flags & PACKET_FLAG_RESET) ? "Reset" : "Closed"); m_Status = eStreamStatusReset; Close (); } @@ -486,7 +486,7 @@ namespace stream LogPrint (eLogInfo, "Trying to send stream data before closing"); break; case eStreamStatusReset: - SendClose (); + SendClose (true); // send reset Terminate (); m_LocalDestination.DeleteStream (shared_from_this ()); break; @@ -509,7 +509,7 @@ namespace stream }; } - void Stream::SendClose () + void Stream::SendClose (bool reset) { Packet * p = new Packet (); uint8_t * packet = p->GetBuffer (); @@ -525,7 +525,7 @@ namespace stream packet[size] = 0; size++; // NACK count size++; // resend delay - htobe16buf (packet + size, PACKET_FLAG_CLOSE | PACKET_FLAG_SIGNATURE_INCLUDED); + htobe16buf (packet + size, (reset ? PACKET_FLAG_RESET : PACKET_FLAG_CLOSE) | PACKET_FLAG_SIGNATURE_INCLUDED); size += 2; // flags size_t signatureLen = m_LocalDestination.GetOwner ().GetIdentity ().GetSignatureLen (); htobe16buf (packet + size, signatureLen); // signature only diff --git a/Streaming.h b/Streaming.h index 88268249..a3619627 100644 --- a/Streaming.h +++ b/Streaming.h @@ -137,7 +137,7 @@ namespace stream void SendBuffer (); void SendQuickAck (); - void SendClose (); + void SendClose (bool reset = false); bool SendPacket (Packet * packet); void SendPackets (const std::vector& packets);