mirror of
https://github.com/cryptomator/cryptomator.git
synced 2026-05-21 04:01:27 +00:00
opening a vault in read-only always assumes a filename length limit of 220
references #1605
This commit is contained in:
@@ -104,19 +104,27 @@ public class Vault {
|
||||
if (vaultSettings.usesReadOnlyMode().get()) {
|
||||
flags.add(FileSystemFlags.READONLY);
|
||||
}
|
||||
if (!flags.contains(FileSystemFlags.READONLY) && vaultSettings.filenameLengthLimit().get() == -1) {
|
||||
|
||||
int usedFilenameLengthLimit;
|
||||
var fileSystemCapabilityChecker = new FileSystemCapabilityChecker();
|
||||
if (flags.contains(FileSystemFlags.READONLY)) {
|
||||
usedFilenameLengthLimit = Constants.MAX_CIPHERTEXT_NAME_LENGTH;
|
||||
} else if (vaultSettings.filenameLengthLimit().get() == -1) {
|
||||
LOG.debug("Determining file name length limitations...");
|
||||
int limit = new FileSystemCapabilityChecker().determineSupportedFileNameLength(getPath());
|
||||
vaultSettings.filenameLengthLimit().set(limit);
|
||||
LOG.info("Storing file name length limit of {}", limit);
|
||||
usedFilenameLengthLimit = fileSystemCapabilityChecker.determineSupportedFileNameLength(getPath());
|
||||
vaultSettings.filenameLengthLimit().set(usedFilenameLengthLimit);
|
||||
LOG.info("Storing file name length limit of {}", usedFilenameLengthLimit);
|
||||
} else {
|
||||
usedFilenameLengthLimit = vaultSettings.filenameLengthLimit().get();
|
||||
}
|
||||
assert vaultSettings.filenameLengthLimit().get() > 0;
|
||||
|
||||
assert usedFilenameLengthLimit > 0;
|
||||
CryptoFileSystemProperties fsProps = CryptoFileSystemProperties.cryptoFileSystemProperties() //
|
||||
.withPassphrase(passphrase) //
|
||||
.withFlags(flags) //
|
||||
.withMasterkeyFilename(MASTERKEY_FILENAME) //
|
||||
.withMaxPathLength(vaultSettings.filenameLengthLimit().get() + Constants.MAX_ADDITIONAL_PATH_LENGTH) //
|
||||
.withMaxNameLength(vaultSettings.filenameLengthLimit().get()) //
|
||||
.withMaxNameLength(usedFilenameLengthLimit) //
|
||||
.build();
|
||||
return CryptoFileSystemProvider.newFileSystem(getPath(), fsProps);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user