diff --git a/README.md b/README.md index 3660f55..f7d1593 100644 --- a/README.md +++ b/README.md @@ -494,6 +494,7 @@ enum UnixFileType BlockDevice, Socket, Fifo, + WeirdFile } [Flags] enum UnixFileTypeFilter @@ -505,6 +506,7 @@ enum UnixFileTypeFilter BlockDevice, Socket, Fifo, + WeirdFile } [Flags] enum UnixFilePermissions // values match System.IO.UnixFileMode. diff --git a/src/Tmds.Ssh/SftpChannel.Reader.cs b/src/Tmds.Ssh/SftpChannel.Reader.cs index 81034ad..ed04c16 100644 --- a/src/Tmds.Ssh/SftpChannel.Reader.cs +++ b/src/Tmds.Ssh/SftpChannel.Reader.cs @@ -150,7 +150,7 @@ public PacketType ReadPacketType() UnixFileTypeByte.BlockDevice => UnixFileType.BlockDevice, UnixFileTypeByte.Socket => UnixFileType.Socket, UnixFileTypeByte.Fifo => UnixFileType.Fifo, - _ => throw new InvalidDataException($"Invalid mode: {mode}.") + _ => UnixFileType.WeirdFile }; return (permissions, fileType); } diff --git a/src/Tmds.Ssh/UnixFileType.cs b/src/Tmds.Ssh/UnixFileType.cs index e3dd63c..d870750 100644 --- a/src/Tmds.Ssh/UnixFileType.cs +++ b/src/Tmds.Ssh/UnixFileType.cs @@ -12,6 +12,7 @@ public enum UnixFileType : short BlockDevice = UnixFileTypeFilter.BlockDevice << UnixFileTypeFilterExtensions.TypeShift | UnixFileTypeByte.BlockDevice, Socket = UnixFileTypeFilter.Socket << UnixFileTypeFilterExtensions.TypeShift | UnixFileTypeByte.Socket, Fifo = UnixFileTypeFilter.Fifo << UnixFileTypeFilterExtensions.TypeShift | UnixFileTypeByte.Fifo, + WeirdFile = unchecked((short)(UnixFileTypeFilter.WeirdFile << UnixFileTypeFilterExtensions.TypeShift)) } static class UnixFileTypeExtensions diff --git a/src/Tmds.Ssh/UnixFileTypeFilter.cs b/src/Tmds.Ssh/UnixFileTypeFilter.cs index b83ae55..36a78fb 100644 --- a/src/Tmds.Ssh/UnixFileTypeFilter.cs +++ b/src/Tmds.Ssh/UnixFileTypeFilter.cs @@ -13,6 +13,7 @@ public enum UnixFileTypeFilter : byte BlockDevice = 16, Socket = 32, Fifo = 64, + WeirdFile = 128 } static class UnixFileTypeFilterExtensions diff --git a/test/Tmds.Ssh.Tests/PublicApiTest.PublicApi.DotNet.verified.txt b/test/Tmds.Ssh.Tests/PublicApiTest.PublicApi.DotNet.verified.txt index 1f9820d..cdc11b6 100644 --- a/test/Tmds.Ssh.Tests/PublicApiTest.PublicApi.DotNet.verified.txt +++ b/test/Tmds.Ssh.Tests/PublicApiTest.PublicApi.DotNet.verified.txt @@ -570,6 +570,7 @@ namespace Tmds.Ssh BlockDevice = 4102, Socket = 8204, Fifo = 16385, + WeirdFile = -32768, } [System.Flags] public enum UnixFileTypeFilter : byte @@ -581,6 +582,7 @@ namespace Tmds.Ssh BlockDevice = 16, Socket = 32, Fifo = 64, + WeirdFile = 128, } public sealed class UploadEntriesOptions {