std::string DownloadTask::dump() { Json::Value root; root["url"] = GetUrl(); root["download_path"] = GetDownloadPath(); root["md5"] = GetMd5(); root["file_size"] = Json::Value(GetFileSize()); root["progress"] = Json::Value(GetProgress()); root["breakpoint"] = Json::Value(GetBreakpoint()); return root.toString(); }
ulong CFile::GetHostId() { #ifdef UNIX return gethostid(); #else static uint32 nHostId; static bool bInit = false; if(bInit) return nHostId; SystemLock(); if(!bInit) { char* out = (char*)&nHostId; char sMac[20]; if(!GetMacAddress(sMac)) { nHostId = 0xFFFFFFFF; bInit = true; SystemUnLock(); return nHostId; } static uint8 sSecret[10] = {0x7E,0xA6,0xD7,0xB1,0xC3,0xF2,0xE3,0x04,0xBE,0xCA}; char md5Output[16]; CBinary::MemoryCopy(sMac+6, sSecret, 10); GetMd5((uint8*)md5Output, (uint8*)sMac, 16); if(CBinary::U32Code(1) != 1) { out[0] = md5Output[1] + md5Output[6] + md5Output[11]; out[1] = md5Output[3] + md5Output[8] + md5Output[13]; out[2] = md5Output[5] + md5Output[10] + md5Output[15]; out[3] = md5Output[0] & 0x7F; } else { out[3] = md5Output[1] + md5Output[6] + md5Output[11]; out[2] = md5Output[3] + md5Output[8] + md5Output[13]; out[1] = md5Output[5] + md5Output[10] + md5Output[15]; out[0] = md5Output[0] & 0x7F; } bInit = true; } SystemUnLock(); return nHostId; #endif }