Add optional password for archive writer
This commit is contained in:
@@ -11,10 +11,11 @@
|
|||||||
#include <archive.h>
|
#include <archive.h>
|
||||||
#include <archive_entry.h>
|
#include <archive_entry.h>
|
||||||
#include <iostream>
|
#include <iostream>
|
||||||
|
#include <units.h>
|
||||||
|
|
||||||
namespace OpenVulkano
|
namespace OpenVulkano
|
||||||
{
|
{
|
||||||
ArchiveWriter::ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr<spdlog::logger>& logger)
|
ArchiveWriter::ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr<spdlog::logger>& logger, const char* password)
|
||||||
: ArchiveBase(archive_write_new(), archive_entry_new(), logger)
|
: ArchiveBase(archive_write_new(), archive_entry_new(), logger)
|
||||||
, m_archiveConfig(archiveConfiguration)
|
, m_archiveConfig(archiveConfiguration)
|
||||||
, m_shouldCompress(&SimpleFileTypeShouldCompressChecker)
|
, m_shouldCompress(&SimpleFileTypeShouldCompressChecker)
|
||||||
@@ -30,6 +31,7 @@ namespace OpenVulkano
|
|||||||
std::string level = "compression-level=" + std::to_string(archiveConfiguration.compressionLevel);
|
std::string level = "compression-level=" + std::to_string(archiveConfiguration.compressionLevel);
|
||||||
ChkErr(archive_write_set_options(m_archive, level.c_str()));
|
ChkErr(archive_write_set_options(m_archive, level.c_str()));
|
||||||
}
|
}
|
||||||
|
if (password) ChkErr(archive_write_set_passphrase(m_archive, password));
|
||||||
ChkErr(archive_write_open_filename(m_archive, fileName));
|
ChkErr(archive_write_open_filename(m_archive, fileName));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,11 +26,11 @@ namespace OpenVulkano
|
|||||||
std::function<bool(const FileDescription&)> m_shouldCompress;
|
std::function<bool(const FileDescription&)> m_shouldCompress;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
ArchiveWriter(const char* fileName, const std::shared_ptr<spdlog::logger>& logger = nullptr)
|
ArchiveWriter(const char* fileName, const std::shared_ptr<spdlog::logger>& logger = nullptr, const char* password = nullptr)
|
||||||
: ArchiveWriter(fileName, ArchiveConfiguration::FromFileName(fileName), logger)
|
: ArchiveWriter(fileName, ArchiveConfiguration::FromFileName(fileName), logger, password)
|
||||||
{}
|
{}
|
||||||
|
|
||||||
ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr<spdlog::logger>& logger = nullptr);
|
ArchiveWriter(const char* fileName, ArchiveConfiguration archiveConfiguration, const std::shared_ptr<spdlog::logger>& logger = nullptr, const char* password = nullptr);
|
||||||
|
|
||||||
~ArchiveWriter() override;
|
~ArchiveWriter() override;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user