void ICMPv4PacketImpl::initPacket() { if (_seq >= MAX_SEQ_VALUE) resetSequence(); Header* icp = (Header*) packet(false); icp->type = ECHO_REQUEST; icp->code = 0; icp->checksum = 0; icp->seq = ++_seq; #if defined(POCO_VXWORKS) icp->id = 0; #else icp->id = static_cast<UInt16>(Poco::Process::id()); #endif struct timeval* ptp = (struct timeval *) (icp + 1); *ptp = time(); icp->checksum = checksum((UInt16*) icp, getDataSize() + sizeof(Header)); }
Selector::Result Selector::onTick(stack<Node*> *cache) { resetSequence(); return tickChild(cache); }