Add FileSystem::Luks2 child class.

This commit is contained in:
Andrius Štikonas 2017-12-14 02:08:32 +00:00
parent 8c030baf3e
commit 7aa77f489d
7 changed files with 22 additions and 11 deletions

View File

@ -17,6 +17,7 @@ set(FS_SRC
fs/jfs.cpp
fs/linuxswap.cpp
fs/luks.cpp
fs/luks2.cpp
fs/lvm2_pv.cpp
fs/nilfs2.cpp
fs/ntfs.cpp
@ -50,6 +51,7 @@ set(FS_LIB_HDRS
fs/jfs.h
fs/linuxswap.h
fs/luks.h
fs/luks2.h
fs/lvm2_pv.h
fs/nilfs2.h
fs/ntfs.h

View File

@ -66,7 +66,8 @@ const std::array< QColor, FileSystem::__lastType > FileSystem::defaultColorCode
QColor( 160,210,180 ),
QColor( 255,170,0 ),
QColor( 170, 120, 255 ),
QColor( 177, 82, 69 )
QColor( 177, 82, 69 ),
QColor( 170,30,77 )
}
};
@ -444,6 +445,7 @@ static const KLocalizedString* typeNames()
kxi18nc("@item filesystem name", "f2fs"),
kxi18nc("@item filesystem name", "udf"),
kxi18nc("@item filesystem name", "iso9660"),
kxi18nc("@item filesystem name", "luks2")
};
return s;

View File

@ -87,8 +87,9 @@ public:
F2fs = 25,
Udf = 26,
Iso9660 = 27,
Luks2 = 28,
__lastType = 28
__lastType = 29
};
/** The type of support for a given FileSystem action */

View File

@ -35,6 +35,7 @@
#include "fs/jfs.h"
#include "fs/linuxswap.h"
#include "fs/luks.h"
#include "fs/luks2.h"
#include "fs/lvm2_pv.h"
#include "fs/nilfs2.h"
#include "fs/ntfs.h"
@ -75,6 +76,7 @@ void FileSystemFactory::init()
m_FileSystems.insert(FileSystem::Jfs, new FS::jfs(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::LinuxSwap, new FS::linuxswap(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Luks, new FS::luks(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Luks2, new FS::luks2(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Lvm2_PV, new FS::lvm2_pv(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Nilfs2, new FS::nilfs2(-1, -1, -1, QString()));
m_FileSystems.insert(FileSystem::Ntfs, new FS::ntfs(-1, -1, -1, QString()));
@ -123,6 +125,7 @@ FileSystem* FileSystemFactory::create(FileSystem::Type t, qint64 firstsector, qi
case FileSystem::Jfs: fs = new FS::jfs(firstsector, lastsector, sectorsused, label); break;
case FileSystem::LinuxSwap: fs = new FS::linuxswap(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Luks: fs = new FS::luks(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Luks2: fs = new FS::luks2(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Lvm2_PV: fs = new FS::lvm2_pv(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Nilfs2: fs = new FS::nilfs2(firstsector, lastsector, sectorsused, label); break;
case FileSystem::Ntfs: fs = new FS::ntfs(firstsector, lastsector, sectorsused, label); break;
@ -138,10 +141,11 @@ FileSystem* FileSystemFactory::create(FileSystem::Type t, qint64 firstsector, qi
default: break;
}
if (fs != nullptr)
if (fs != nullptr) {
fs->setUUID(uuid);
fs->setSectorSize(sectorSize);
}
fs->setSectorSize(sectorSize);
return fs;
}

View File

@ -61,8 +61,9 @@ FileSystem::CommandSupportType luks::m_GetUUID = FileSystem::cmdSupportNone;
luks::luks(qint64 firstsector,
qint64 lastsector,
qint64 sectorsused,
const QString& label)
: FileSystem(firstsector, lastsector, sectorsused, label, FileSystem::Luks)
const QString& label,
FileSystem::Type t)
: FileSystem(firstsector, lastsector, sectorsused, label, t)
, m_innerFs(nullptr)
, m_isCryptOpen(false)
, m_cryptsetupFound(m_Create != cmdSupportNone)

View File

@ -26,7 +26,7 @@
#include "fs/filesystem.h"
#include <QtGlobal>
#include <QPointer>
#include <QWidget>
class Report;
@ -40,7 +40,7 @@ namespace FS
class LIBKPMCORE_EXPORT luks : public FileSystem
{
public:
luks(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label);
luks(qint64 firstsector, qint64 lastsector, qint64 sectorsused, const QString& label, FileSystem::Type t = FileSystem::Luks);
~luks() override;
public:
@ -199,7 +199,7 @@ public:
static CommandSupportType m_UpdateUUID;
static CommandSupportType m_GetUUID;
private:
protected:
mutable FileSystem* m_innerFs;
mutable bool m_isCryptOpen;

View File

@ -28,6 +28,7 @@
#include "fs/filesystemfactory.h"
#include "fs/luks.h"
#include "fs/luks2.h"
#include "util/globallog.h"
#include "util/externalcommand.h"
@ -232,7 +233,7 @@ void SfdiskBackend::scanDevicePartitions(Device& d, const QJsonArray& jsonPartit
QString mountPoint;
bool mounted;
// sfdisk does not handle LUKS partitions
if (fs->type() == FileSystem::Luks) {
if (fs->type() == FileSystem::Luks || fs->type() == FileSystem::Luks2) {
r |= PartitionRole::Luks;
FS::luks* luksFs = static_cast<FS::luks*>(fs);
luksFs->initLUKS();
@ -339,7 +340,7 @@ FileSystem::Type SfdiskBackend::detectFileSystem(const QString& partitionPath)
if (version == QStringLiteral("1"))
rval = FileSystem::Luks;
else if (version == QStringLiteral("2")) {
rval = FileSystem::Luks;
rval = FileSystem::Luks2;
}
}
else if (s == QStringLiteral("exfat")) rval = FileSystem::Exfat;