void CFriendList::LoadList() { CPath metfile = CPath(theApp->ConfigDir + wxT("emfriends.met")); if (!metfile.FileExists()) { return; } CFile file; try { if ( file.Open(metfile) ) { if ( file.ReadUInt8() /*header*/ == MET_HEADER ) { uint32 nRecordsNumber = file.ReadUInt32(); for (uint32 i = 0; i < nRecordsNumber; i++) { CFriend* Record = new CFriend(); Record->LoadFromFile(&file); m_FriendList.push_back(Record); Notify_ChatUpdateFriend(Record); } } } else { AddLogLineN(_("Failed to open friend list file 'emfriends.met' for reading!")); } } catch (const CInvalidPacket& e) { AddDebugLogLineC(logGeneral, wxT("Invalid entry in friend list, file may be corrupt: ") + e.what()); } catch (const CSafeIOException& e) { AddDebugLogLineC(logGeneral, wxT("IO error while reading 'emfriends.met': ") + e.what()); } }
bool CKnownFileList::Init() { CFile file; CPath fullpath = CPath(theApp->ConfigDir + m_filename); if (!fullpath.FileExists()) { // This is perfectly normal. The file was probably either // deleted, or this is the first time running aMule. return false; } if (!file.Open(fullpath)) { AddLogLineC(CFormat(_("WARNING: %s cannot be opened.")) % m_filename); return false; } try { uint8 version = file.ReadUInt8(); if ((version != MET_HEADER) && (version != MET_HEADER_WITH_LARGEFILES)) { AddLogLineC(_("WARNING: Known file list corrupted, contains invalid header.")); return false; } wxMutexLocker sLock(list_mut); uint32 RecordsNumber = file.ReadUInt32(); AddDebugLogLineN(logKnownFiles, CFormat(wxT("Reading %i known files from file format 0x%2.2x.")) % RecordsNumber % version); for (uint32 i = 0; i < RecordsNumber; i++) { CScopedPtr<CKnownFile> record; if (record->LoadFromFile(&file)) { AddDebugLogLineN(logKnownFiles, CFormat(wxT("Known file read: %s")) % record->GetFileName()); Append(record.release()); } else { AddLogLineC(_("Failed to load entry in known file list, file may be corrupt")); } } AddDebugLogLineN(logKnownFiles, wxT("Finished reading known files")); return true; } catch (const CInvalidPacket& e) { AddLogLineC(_("Invalid entry in known file list, file may be corrupt: ") + e.what()); } catch (const CSafeIOException& e) { AddLogLineC(CFormat(_("IO error while reading %s file: %s")) % m_filename % e.what()); } return false; }
bool CCanceledFileList::Init() { CFile file; CPath fullpath = CPath(theApp->ConfigDir + m_filename); if (!fullpath.FileExists()) { // This is perfectly normal. The file was probably either // deleted, or this is the first time running aMule. return false; } if (!file.Open(fullpath)) { AddLogLineM(true, CFormat(_("WARNING: %s cannot be opened.")) % m_filename); return false; } try { uint8 version = file.ReadUInt8(); if (version != CANCELEDFILE_VERSION) { AddLogLineM(true, _("WARNING: Canceled file list corrupted, contains invalid header.")); return false; } uint32 RecordsNumber = file.ReadUInt32(); AddDebugLogLineM(false, logKnownFiles, CFormat(wxT("Reading %i canceled files from file format 0x%02x.")) % RecordsNumber % version); for (uint32 i = 0; i < RecordsNumber; i++) { CMD4Hash hash; file.Read(hash.GetHash(), 16); AddDebugLogLineM(false, logKnownFiles, CFormat(wxT("Canceled file read: %s")) % hash.Encode()); if (!hash.IsEmpty()) { m_canceledFileList.insert(hash); } } AddDebugLogLineM(false, logKnownFiles, wxT("Finished reading canceled files")); return true; } catch (const CSafeIOException& e) { AddLogLineM(true, CFormat(_("IO error while reading %s file: %s")) % m_filename % e.what()); } return false; }