From 34da9a9655a09ec33079a809e2998b22241d79b5 Mon Sep 17 00:00:00 2001 From: Jeff Becker Date: Thu, 28 Jul 2016 11:37:33 -0400 Subject: [PATCH] streaming limiting tweaks --- Streaming.cpp | 28 +++++++++++++++------------- 1 file changed, 15 insertions(+), 13 deletions(-) diff --git a/Streaming.cpp b/Streaming.cpp index 06f2a18a..160388cc 100644 --- a/Streaming.cpp +++ b/Streaming.cpp @@ -853,19 +853,6 @@ namespace stream if (packet->IsSYN () && !packet->GetSeqn ()) // new incoming stream { auto incomingStream = CreateNewIncomingStream (); - uint32_t receiveStreamID = packet->GetReceiveStreamID (); - incomingStream->HandleNextPacket (packet); // SYN - // handle saved packets if any - { - auto it = m_SavedPackets.find (receiveStreamID); - if (it != m_SavedPackets.end ()) - { - LogPrint (eLogDebug, "Streaming: Processing ", it->second.size (), " saved packets for rSID=", receiveStreamID); - for (auto it1: it->second) - incomingStream->HandleNextPacket (it1); - m_SavedPackets.erase (it); - } - } auto ident = incomingStream->GetRemoteIdentity(); if(ident) { @@ -874,6 +861,7 @@ namespace stream { // drop LogPrint(eLogWarning, "Streaming: Too many inbound streams from ", ih.ToBase32()); + incomingStream->Close(); DeleteStream(incomingStream); incomingStream = nullptr; delete packet; @@ -881,6 +869,20 @@ namespace stream } } else LogPrint(eLogWarning, "Streaming: Inbound stream has no identity"); + + uint32_t receiveStreamID = packet->GetReceiveStreamID (); + incomingStream->HandleNextPacket (packet); // SYN + // handle saved packets if any + { + auto it = m_SavedPackets.find (receiveStreamID); + if (it != m_SavedPackets.end ()) + { + LogPrint (eLogDebug, "Streaming: Processing ", it->second.size (), " saved packets for rSID=", receiveStreamID); + for (auto it1: it->second) + incomingStream->HandleNextPacket (it1); + m_SavedPackets.erase (it); + } + } // accept if (m_Acceptor != nullptr) m_Acceptor (incomingStream);