mirror of
https://github.com/aaru-dps/Aaru.git
synced 2025-12-16 19:24:25 +00:00
Decode "SL" system area.
This commit is contained in:
@@ -40,6 +40,7 @@ namespace DiscImageChef.Filesystems.ISO9660
|
||||
return Errno.NoError;
|
||||
}
|
||||
|
||||
// TODO: Resolve symbolic link
|
||||
public Errno Read(string path, long offset, long size, ref byte[] buf)
|
||||
{
|
||||
buf = null;
|
||||
@@ -195,6 +196,8 @@ namespace DiscImageChef.Filesystems.ISO9660
|
||||
|
||||
if(entry.RripBackup != null) stat.BackupTimeUtc = DecodeIsoDateTime(entry.RripBackup);
|
||||
|
||||
if(entry.SymbolicLink != null) stat.Attributes |= FileAttributes.Symlink;
|
||||
|
||||
if(entry.AssociatedFile is null || entry.AssociatedFile.Extent == 0 || entry.AssociatedFile.Size == 0)
|
||||
return Errno.NoError;
|
||||
|
||||
@@ -223,6 +226,20 @@ namespace DiscImageChef.Filesystems.ISO9660
|
||||
return Errno.NoError;
|
||||
}
|
||||
|
||||
public Errno ReadLink(string path, out string dest)
|
||||
{
|
||||
dest = null;
|
||||
|
||||
Errno err = GetFileEntry(path, out DecodedDirectoryEntry entry);
|
||||
if(err != Errno.NoError) return err;
|
||||
|
||||
if(entry.SymbolicLink is null) return Errno.InvalidArgument;
|
||||
|
||||
dest = entry.SymbolicLink;
|
||||
|
||||
return Errno.NoError;
|
||||
}
|
||||
|
||||
Errno GetFileEntry(string path, out DecodedDirectoryEntry entry)
|
||||
{
|
||||
entry = null;
|
||||
|
||||
Reference in New Issue
Block a user