UpdaterState CUpdater::ProcessFinishedDownload() { UpdaterState s = newversion; wxString const temp = GetTempFile(); if( temp.empty() ) { s = newversion; } else if( !VerifyChecksum( temp, version_information_.available_.size_, version_information_.available_.hash_ ) ) { wxLogNull log; wxRemoveFile(temp); s = newversion; } else { s = newversion_ready; wxString local_file = GetLocalFile( version_information_.available_, false ); wxLogNull log; if (local_file.empty() || !wxRenameFile( temp, local_file, false ) ) { s = newversion; wxRemoveFile( temp ); log_ += wxString::Format(_("Could not create local file %s\n"), local_file.c_str()); } else { local_file_ = local_file; log_ += wxString::Format(_("Local file is %s\n"), local_file.c_str()); } } return s; }
void CFileItem::SaveItem(pugi::xml_node& element) const { if (m_edit != CEditHandler::none || !element) { return; } auto file = element.append_child("File"); AddTextElement(file, "LocalFile", m_localPath.GetPath() + GetLocalFile()); AddTextElement(file, "RemoteFile", GetRemoteFile()); AddTextElement(file, "RemotePath", m_remotePath.GetSafePath()); AddTextElementUtf8(file, "Download", Download() ? "1" : "0"); if (m_size != -1) { AddTextElement(file, "Size", m_size); } if (m_errorCount) { AddTextElement(file, "ErrorCount", m_errorCount); } if (m_priority != QueuePriority::normal) { AddTextElement(file, "Priority", static_cast<int>(m_priority)); } AddTextElementUtf8(file, "DataType", Ascii() ? "0" : "1"); if (m_defaultFileExistsAction != CFileExistsNotification::unknown) { AddTextElement(file, "OverwriteAction", m_defaultFileExistsAction); } }
void CFolderItem::SaveItem(pugi::xml_node& element) const { auto file = element.append_child("Folder"); if (Download()) { AddTextElement(file, "LocalFile", GetLocalPath().GetPath() + GetLocalFile()); } else { AddTextElement(file, "RemoteFile", GetRemoteFile()); AddTextElement(file, "RemotePath", m_remotePath.GetSafePath()); } AddTextElementUtf8(file, "Download", Download() ? "1" : "0"); }
void CFolderItem::SaveItem(TiXmlElement* pElement) const { TiXmlElement *file = new TiXmlElement("Folder"); if (Download()) AddTextElement(file, "LocalFile", GetLocalPath().GetPath() + GetLocalFile()); else { AddTextElement(file, "RemoteFile", GetRemoteFile()); AddTextElement(file, "RemotePath", m_remotePath.GetSafePath()); } AddTextElementRaw(file, "Download", Download() ? "1" : "0"); pElement->LinkEndChild(file); }
UpdaterState CUpdater::ProcessFinishedData(bool can_download) { UpdaterState s = failed; ParseData(); if( version_information_.available_.version_.empty() ) { s = idle; } else if( !version_information_.available_.url_.empty() ) { wxString const temp = GetTempFile(); wxString const local_file = GetLocalFile(version_information_.available_, true); if( !local_file.empty() && CLocalFileSystem::GetFileType(local_file) != CLocalFileSystem::unknown) { local_file_ = local_file; log_ += wxString::Format(_("Local file is %s\n"), local_file.c_str()); s = newversion_ready; } else { // We got a checksum over a secure channel already. update_options_->m_use_internal_rootcert = false; if( temp.empty() || local_file.empty() ) { s = newversion; } else { s = newversion_downloading; wxLongLong size = CLocalFileSystem::GetSize(temp); if( size >= 0 && static_cast<unsigned long long>(size.GetValue()) >= version_information_.available_.size_ ) { s = ProcessFinishedDownload(); } else if( !can_download || Download( version_information_.available_.url_, GetTempFile() ) != FZ_REPLY_WOULDBLOCK ) { s = newversion; } } } } else { s = newversion; } return s; }
void CFileItem::SaveItem(TiXmlElement* pElement) const { if (m_edit != CEditHandler::none) return; TiXmlElement *file = pElement->LinkEndChild(new TiXmlElement("File"))->ToElement(); AddTextElement(file, "LocalFile", m_localPath.GetPath() + GetLocalFile()); AddTextElement(file, "RemoteFile", GetRemoteFile()); AddTextElement(file, "RemotePath", m_remotePath.GetSafePath()); AddTextElementRaw(file, "Download", Download() ? "1" : "0"); if (m_size != -1) AddTextElement(file, "Size", m_size.ToString()); if (m_errorCount) AddTextElement(file, "ErrorCount", m_errorCount); if (m_priority != QueuePriority::normal) AddTextElement(file, "Priority", static_cast<int>(m_priority)); AddTextElementRaw(file, "DataType", m_transferSettings.binary ? "1" : "0"); if (m_defaultFileExistsAction != CFileExistsNotification::unknown) AddTextElement(file, "OverwriteAction", m_defaultFileExistsAction); }