diff --git a/src/input/input.cpp b/src/input/input.cpp index 62f29d18..bafdfb8e 100644 --- a/src/input/input.cpp +++ b/src/input/input.cpp @@ -387,16 +387,7 @@ namespace Mist { it->second.lastms = 0; } - getNext(); - while (thisPacket && config->is_active && nProxy.userClient.isAlive()){ - nProxy.bufferLivePacket(thisPacket, myMeta); - getNext(); - nProxy.userClient.keepAlive(); - } - std::string reason = "Unknown"; - if (!thisPacket){reason = "Invalid packet";} - if (!config->is_active){reason = "received deactivate signal";} - if (!nProxy.userClient.isAlive()){reason = "buffer shutdown";} + std::string reason = streamMainLoop(); closeStreamSource(); @@ -409,9 +400,22 @@ namespace Mist { return; } - void Input::finish(){ - for( std::map >::iterator it = pageCounter.begin(); it != pageCounter.end(); it++){ - for (std::map::iterator it2 = it->second.begin(); it2 != it->second.end(); it2++){ + std::string Input::streamMainLoop(){ + getNext(); + while (thisPacket && config->is_active && nProxy.userClient.isAlive()){ + nProxy.bufferLivePacket(thisPacket, myMeta); + getNext(); + nProxy.userClient.keepAlive(); + } + if (!thisPacket){return "Invalid packet";} + if (!config->is_active){return "received deactivate signal";} + if (!nProxy.userClient.isAlive()){return "buffer shutdown";} + return "Unknown"; + } + + void Input::finish() { + for (std::map >::iterator it = pageCounter.begin(); it != pageCounter.end(); it++) { + for (std::map::iterator it2 = it->second.begin(); it2 != it->second.end(); it2++) { it2->second = 1; } } diff --git a/src/input/input.h b/src/input/input.h index ae2c68e8..b0a9ccaa 100644 --- a/src/input/input.h +++ b/src/input/input.h @@ -50,6 +50,7 @@ namespace Mist { virtual void convert(); virtual void serve(); virtual void stream(); + virtual std::string streamMainLoop(); bool isAlwaysOn(); virtual void parseHeader();