diff --git a/src/output/output_dtsc.cpp b/src/output/output_dtsc.cpp index 0f8afe0e..063b8420 100644 --- a/src/output/output_dtsc.cpp +++ b/src/output/output_dtsc.cpp @@ -29,10 +29,29 @@ namespace Mist { myConn.SendNow(sSize, 4); prep.sendTo(myConn); pushing = false; + lastActive = Util::epoch(); } OutDTSC::~OutDTSC() {} + + void OutDTSC::stats(bool force){ + unsigned long long int now = Util::epoch(); + if (now - lastActive > 1 && !pushing){ + MEDIUM_MSG("Ping!"); + JSON::Value prep; + prep["cmd"] = "ping"; + unsigned long sendSize = prep.packedSize(); + myConn.SendNow("DTCM"); + char sSize[4] = {0, 0, 0, 0}; + Bit::htobl(sSize, prep.packedSize()); + myConn.SendNow(sSize, 4); + prep.sendTo(myConn); + lastActive = now; + } + Output::stats(force); + } + void OutDTSC::init(Util::Config * cfg){ Output::init(cfg); capa["name"] = "DTSC"; @@ -109,6 +128,7 @@ namespace Mist { } } myConn.SendNow(thisPacket.getData(), thisPacket.getDataLen()); + lastActive = Util::epoch(); } void OutDTSC::sendHeader(){ diff --git a/src/output/output_dtsc.h b/src/output/output_dtsc.h index 7721fe38..df379b53 100644 --- a/src/output/output_dtsc.h +++ b/src/output/output_dtsc.h @@ -11,7 +11,9 @@ namespace Mist { void sendNext(); void sendHeader(); void initialSeek(); + void stats(bool force = false); private: + unsigned int lastActive;///<Time of last sending of data. std::string getStatsName(); std::string salt; bool pushing;