void stledgerentry::setsletype () { mformat = ledgerformats::getinstance().findbytype ( static_cast <ledgerentrytype> (getfieldu16 (sfledgerentrytype))); if (mformat == nullptr) throw std::runtime_error ("invalid ledger entry type"); mtype = mformat->gettype (); if (!settype (mformat->elements)) { writelog (lswarning, serializedledger) << "ledger entry not valid for type " << mformat->getname (); writelog (lswarning, serializedledger) << getjson (0); throw std::runtime_error ("ledger entry not valid for type"); } }
void cleanupTrace(void* id) { if (id == NULL || activeTraceCount == 0) { return; } size_t i; printf("Cleanup called.\n"); for (i = activeTraceCount - 1; i >= 0; i--) { if (activeTraces[i] == id) { printf("Cleanup found item to free\n"); if (activeTraces[i]->sent > 0 && activeTraces[i]->recordedHops > 0) { printf("writing to log.\n"); getjson(logbuffer, id); fprintf(logfile, "%s", logbuffer); } activeTraces[i] = activeTraces[activeTraceCount - 1]; activeTraceCount -= 1; free(id); break; } } };