mirror of
https://github.com/TalAloni/SMBLibrary.git
synced 2025-05-31 09:43:47 +02:00
Renamed FileAttributes to SMBFileAttributes
This commit is contained in:
parent
241eafc732
commit
b45cffe099
20 changed files with 48 additions and 48 deletions
|
@ -19,7 +19,7 @@ namespace SMBLibrary.SMB1
|
||||||
public const int SupportedBufferFormat = 0x04;
|
public const int SupportedBufferFormat = 0x04;
|
||||||
public const int ParametersLength = 2;
|
public const int ParametersLength = 2;
|
||||||
// Parameters;
|
// Parameters;
|
||||||
public FileAttributes SearchAttributes;
|
public SMBFileAttributes SearchAttributes;
|
||||||
// Data:
|
// Data:
|
||||||
public byte BufferFormat;
|
public byte BufferFormat;
|
||||||
public string FileName; // SMB_STRING
|
public string FileName; // SMB_STRING
|
||||||
|
@ -31,7 +31,7 @@ namespace SMBLibrary.SMB1
|
||||||
|
|
||||||
public DeleteRequest(byte[] buffer, int offset, bool isUnicode) : base(buffer, offset, isUnicode)
|
public DeleteRequest(byte[] buffer, int offset, bool isUnicode) : base(buffer, offset, isUnicode)
|
||||||
{
|
{
|
||||||
SearchAttributes = (FileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
SearchAttributes = (SMBFileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
||||||
|
|
||||||
BufferFormat = ByteReader.ReadByte(this.SMBData, 0);
|
BufferFormat = ByteReader.ReadByte(this.SMBData, 0);
|
||||||
if (BufferFormat != SupportedBufferFormat)
|
if (BufferFormat != SupportedBufferFormat)
|
||||||
|
|
|
@ -23,8 +23,8 @@ namespace SMBLibrary.SMB1
|
||||||
//ushort AndXOffset;
|
//ushort AndXOffset;
|
||||||
public OpenFlags Flags;
|
public OpenFlags Flags;
|
||||||
public AccessModeOptions AccessMode;
|
public AccessModeOptions AccessMode;
|
||||||
public FileAttributes SearchAttrs;
|
public SMBFileAttributes SearchAttrs;
|
||||||
public FileAttributes FileAttrs;
|
public SMBFileAttributes FileAttrs;
|
||||||
public DateTime CreationTime; // UTime
|
public DateTime CreationTime; // UTime
|
||||||
public OpenMode OpenMode;
|
public OpenMode OpenMode;
|
||||||
public uint AllocationSize;
|
public uint AllocationSize;
|
||||||
|
@ -42,8 +42,8 @@ namespace SMBLibrary.SMB1
|
||||||
int parametersOffset = 4;
|
int parametersOffset = 4;
|
||||||
Flags = (OpenFlags)LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset);
|
Flags = (OpenFlags)LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset);
|
||||||
AccessMode = AccessModeOptions.Read(this.SMBParameters, ref parametersOffset);
|
AccessMode = AccessModeOptions.Read(this.SMBParameters, ref parametersOffset);
|
||||||
SearchAttrs = (FileAttributes)LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset);
|
SearchAttrs = (SMBFileAttributes)LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset);
|
||||||
FileAttrs = (FileAttributes)LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset);
|
FileAttrs = (SMBFileAttributes)LittleEndianReader.ReadUInt16(this.SMBParameters, ref parametersOffset);
|
||||||
CreationTime = SMB1Helper.ReadUTime(this.SMBParameters, ref parametersOffset);
|
CreationTime = SMB1Helper.ReadUTime(this.SMBParameters, ref parametersOffset);
|
||||||
OpenMode = OpenMode.Read(this.SMBParameters, ref parametersOffset);
|
OpenMode = OpenMode.Read(this.SMBParameters, ref parametersOffset);
|
||||||
AllocationSize = LittleEndianReader.ReadUInt32(this.SMBParameters, ref parametersOffset);
|
AllocationSize = LittleEndianReader.ReadUInt32(this.SMBParameters, ref parametersOffset);
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace SMBLibrary.SMB1
|
||||||
//byte AndXReserved;
|
//byte AndXReserved;
|
||||||
//ushort AndXOffset;
|
//ushort AndXOffset;
|
||||||
public ushort FID;
|
public ushort FID;
|
||||||
public FileAttributes FileAttrs;
|
public SMBFileAttributes FileAttrs;
|
||||||
public DateTime LastWriteTime; // UTime
|
public DateTime LastWriteTime; // UTime
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public AccessRights AccessRights;
|
public AccessRights AccessRights;
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace SMBLibrary.SMB1
|
||||||
//byte AndXReserved;
|
//byte AndXReserved;
|
||||||
//ushort AndXOffset;
|
//ushort AndXOffset;
|
||||||
public ushort FID;
|
public ushort FID;
|
||||||
public FileAttributes FileAttrs;
|
public SMBFileAttributes FileAttrs;
|
||||||
public DateTime LastWriteTime; // UTime
|
public DateTime LastWriteTime; // UTime
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public AccessRights AccessRights;
|
public AccessRights AccessRights;
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace SMBLibrary.SMB1
|
||||||
{
|
{
|
||||||
public const int ParameterLength = 20;
|
public const int ParameterLength = 20;
|
||||||
// Parameters:
|
// Parameters:
|
||||||
public FileAttributes FileAttributes;
|
public SMBFileAttributes FileAttributes;
|
||||||
public DateTime LastWriteTime;
|
public DateTime LastWriteTime;
|
||||||
public uint FileSize;
|
public uint FileSize;
|
||||||
public byte[] Reserved; // 10 bytes
|
public byte[] Reserved; // 10 bytes
|
||||||
|
@ -32,7 +32,7 @@ namespace SMBLibrary.SMB1
|
||||||
|
|
||||||
public QueryInformationResponse(byte[] buffer, int offset) : base(buffer, offset, false)
|
public QueryInformationResponse(byte[] buffer, int offset) : base(buffer, offset, false)
|
||||||
{
|
{
|
||||||
FileAttributes = (FileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
FileAttributes = (SMBFileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
||||||
LastWriteTime = SMB1Helper.ReadSMBDateTime(this.SMBParameters, 2);
|
LastWriteTime = SMB1Helper.ReadSMBDateTime(this.SMBParameters, 2);
|
||||||
FileSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 6);
|
FileSize = LittleEndianConverter.ToUInt32(this.SMBParameters, 6);
|
||||||
Reserved = ByteReader.ReadBytes(this.SMBParameters, 10, 10);
|
Reserved = ByteReader.ReadBytes(this.SMBParameters, 10, 10);
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace SMBLibrary.SMB1
|
||||||
public const int SupportedBufferFormat = 0x04;
|
public const int SupportedBufferFormat = 0x04;
|
||||||
public const int ParametersLength = 2;
|
public const int ParametersLength = 2;
|
||||||
// Parameters:
|
// Parameters:
|
||||||
public FileAttributes SearchAttributes;
|
public SMBFileAttributes SearchAttributes;
|
||||||
// Data:
|
// Data:
|
||||||
public byte BufferFormat1;
|
public byte BufferFormat1;
|
||||||
public string OldFileName; // SMB_STRING (this field WILL be aligned to start on a 2-byte boundary from the start of the SMB header)
|
public string OldFileName; // SMB_STRING (this field WILL be aligned to start on a 2-byte boundary from the start of the SMB header)
|
||||||
|
@ -34,7 +34,7 @@ namespace SMBLibrary.SMB1
|
||||||
|
|
||||||
public RenameRequest(byte[] buffer, int offset, bool isUnicode) : base(buffer, offset, isUnicode)
|
public RenameRequest(byte[] buffer, int offset, bool isUnicode) : base(buffer, offset, isUnicode)
|
||||||
{
|
{
|
||||||
SearchAttributes = (FileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
SearchAttributes = (SMBFileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
||||||
|
|
||||||
int dataOffset = 0;
|
int dataOffset = 0;
|
||||||
BufferFormat1 = ByteReader.ReadByte(this.SMBData, ref dataOffset);
|
BufferFormat1 = ByteReader.ReadByte(this.SMBData, ref dataOffset);
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace SMBLibrary.SMB1
|
||||||
public const int ParametersLength = 16;
|
public const int ParametersLength = 16;
|
||||||
public const int SupportedBufferFormat = 0x04;
|
public const int SupportedBufferFormat = 0x04;
|
||||||
// Parameters:
|
// Parameters:
|
||||||
public FileAttributes FileAttributes;
|
public SMBFileAttributes FileAttributes;
|
||||||
public DateTime LastWriteTime;
|
public DateTime LastWriteTime;
|
||||||
public byte[] Reserved; // 10 bytes
|
public byte[] Reserved; // 10 bytes
|
||||||
// Data:
|
// Data:
|
||||||
|
@ -34,7 +34,7 @@ namespace SMBLibrary.SMB1
|
||||||
|
|
||||||
public SetInformationRequest(byte[] buffer, int offset, bool isUnicode) : base(buffer, offset, isUnicode)
|
public SetInformationRequest(byte[] buffer, int offset, bool isUnicode) : base(buffer, offset, isUnicode)
|
||||||
{
|
{
|
||||||
FileAttributes = (FileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
FileAttributes = (SMBFileAttributes)LittleEndianConverter.ToUInt16(this.SMBParameters, 0);
|
||||||
LastWriteTime = SMB1Helper.ReadUTime(this.SMBParameters, 2);
|
LastWriteTime = SMB1Helper.ReadUTime(this.SMBParameters, 2);
|
||||||
Reserved = ByteReader.ReadBytes(this.SMBParameters, 6, 10);
|
Reserved = ByteReader.ReadBytes(this.SMBParameters, 6, 10);
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ namespace SMBLibrary.SMB1
|
||||||
/// SMB_FILE_ATTRIBUTES
|
/// SMB_FILE_ATTRIBUTES
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[Flags]
|
[Flags]
|
||||||
public enum FileAttributes : ushort
|
public enum SMBFileAttributes : ushort
|
||||||
{
|
{
|
||||||
Normal = 0x0000, // SMB_FILE_ATTRIBUTE_NORMAL
|
Normal = 0x0000, // SMB_FILE_ATTRIBUTE_NORMAL
|
||||||
ReadOnly = 0x0001, // SMB_FILE_ATTRIBUTE_READONLY
|
ReadOnly = 0x0001, // SMB_FILE_ATTRIBUTE_READONLY
|
|
@ -22,7 +22,7 @@ namespace SMBLibrary.SMB1
|
||||||
public DateTime LastWriteDateTime;
|
public DateTime LastWriteDateTime;
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public uint AllocationSize;
|
public uint AllocationSize;
|
||||||
public FileAttributes Attributes;
|
public SMBFileAttributes Attributes;
|
||||||
public uint EASize;
|
public uint EASize;
|
||||||
//byte FileNameLength; // In bytes, MUST exclude the null termination.
|
//byte FileNameLength; // In bytes, MUST exclude the null termination.
|
||||||
public string FileName; // OEM / Unicode character array. MUST be written as SMB_STRING, and read as fixed length string.
|
public string FileName; // OEM / Unicode character array. MUST be written as SMB_STRING, and read as fixed length string.
|
||||||
|
@ -42,7 +42,7 @@ namespace SMBLibrary.SMB1
|
||||||
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
||||||
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
Attributes = (FileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
||||||
EASize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
EASize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
|
byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
|
||||||
FileName = SMB1Helper.ReadFixedLengthString(buffer, ref offset, isUnicode, fileNameLength);
|
FileName = SMB1Helper.ReadFixedLengthString(buffer, ref offset, isUnicode, fileNameLength);
|
||||||
|
|
|
@ -22,7 +22,7 @@ namespace SMBLibrary.SMB1
|
||||||
public DateTime LastWriteDateTime;
|
public DateTime LastWriteDateTime;
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public uint AllocationSize;
|
public uint AllocationSize;
|
||||||
public FileAttributes Attributes;
|
public SMBFileAttributes Attributes;
|
||||||
public FullExtendedAttributeList ExtendedAttributeList;
|
public FullExtendedAttributeList ExtendedAttributeList;
|
||||||
//byte FileNameLength; // In bytes, MUST exclude the null termination.
|
//byte FileNameLength; // In bytes, MUST exclude the null termination.
|
||||||
public string FileName; // OEM / Unicode character array. MUST be written as SMB_STRING, and read as fixed length string.
|
public string FileName; // OEM / Unicode character array. MUST be written as SMB_STRING, and read as fixed length string.
|
||||||
|
@ -42,7 +42,7 @@ namespace SMBLibrary.SMB1
|
||||||
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
||||||
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
Attributes = (FileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
||||||
ExtendedAttributeList = new FullExtendedAttributeList(buffer, offset);
|
ExtendedAttributeList = new FullExtendedAttributeList(buffer, offset);
|
||||||
byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
|
byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
|
||||||
FileName = SMB1Helper.ReadFixedLengthString(buffer, ref offset, isUnicode, fileNameLength);
|
FileName = SMB1Helper.ReadFixedLengthString(buffer, ref offset, isUnicode, fileNameLength);
|
||||||
|
|
|
@ -24,7 +24,7 @@ namespace SMBLibrary.SMB1
|
||||||
public DateTime LastWriteDateTime;
|
public DateTime LastWriteDateTime;
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public uint AllocationSize;
|
public uint AllocationSize;
|
||||||
public FileAttributes Attributes;
|
public SMBFileAttributes Attributes;
|
||||||
//byte FileNameLength;
|
//byte FileNameLength;
|
||||||
public string FileName; // SMB_STRING
|
public string FileName; // SMB_STRING
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ namespace SMBLibrary.SMB1
|
||||||
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
||||||
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
Attributes = (FileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
||||||
byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
|
byte fileNameLength = ByteReader.ReadByte(buffer, ref offset);
|
||||||
FileName = SMB1Helper.ReadSMBString(buffer, ref offset, isUnicode);
|
FileName = SMB1Helper.ReadSMBString(buffer, ref offset, isUnicode);
|
||||||
}
|
}
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace SMBLibrary.SMB1
|
||||||
public DateTime LastWriteDateTime;
|
public DateTime LastWriteDateTime;
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public uint AllocationSize;
|
public uint AllocationSize;
|
||||||
public FileAttributes Attributes;
|
public SMBFileAttributes Attributes;
|
||||||
public uint EASize;
|
public uint EASize;
|
||||||
|
|
||||||
public QueryEASize()
|
public QueryEASize()
|
||||||
|
@ -37,7 +37,7 @@ namespace SMBLibrary.SMB1
|
||||||
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
||||||
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
Attributes = (FileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
||||||
EASize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
EASize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ namespace SMBLibrary.SMB1
|
||||||
public DateTime LastWriteDateTime;
|
public DateTime LastWriteDateTime;
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public uint AllocationSize;
|
public uint AllocationSize;
|
||||||
public FileAttributes Attributes;
|
public SMBFileAttributes Attributes;
|
||||||
|
|
||||||
public QueryInfoStandard()
|
public QueryInfoStandard()
|
||||||
{
|
{
|
||||||
|
@ -36,7 +36,7 @@ namespace SMBLibrary.SMB1
|
||||||
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
LastWriteDateTime = SMB1Helper.ReadSMBDateTime(buffer, ref offset);
|
||||||
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
FileDataSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
AllocationSize = LittleEndianReader.ReadUInt32(buffer, ref offset);
|
||||||
Attributes = (FileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
Attributes = (SMBFileAttributes)LittleEndianReader.ReadUInt16(buffer, ref offset);
|
||||||
}
|
}
|
||||||
|
|
||||||
public override byte[] GetBytes()
|
public override byte[] GetBytes()
|
||||||
|
|
|
@ -17,7 +17,7 @@ namespace SMBLibrary.SMB1
|
||||||
public class Transaction2FindFirst2Request : Transaction2Subcommand
|
public class Transaction2FindFirst2Request : Transaction2Subcommand
|
||||||
{
|
{
|
||||||
// Parameters:
|
// Parameters:
|
||||||
public FileAttributes SearchAttributes;
|
public SMBFileAttributes SearchAttributes;
|
||||||
public ushort SearchCount;
|
public ushort SearchCount;
|
||||||
public FindFlags Flags;
|
public FindFlags Flags;
|
||||||
public FindInformationLevel InformationLevel;
|
public FindInformationLevel InformationLevel;
|
||||||
|
@ -33,7 +33,7 @@ namespace SMBLibrary.SMB1
|
||||||
|
|
||||||
public Transaction2FindFirst2Request(byte[] parameters, byte[] data, bool isUnicode) : base()
|
public Transaction2FindFirst2Request(byte[] parameters, byte[] data, bool isUnicode) : base()
|
||||||
{
|
{
|
||||||
SearchAttributes = (FileAttributes)LittleEndianConverter.ToUInt16(parameters, 0);
|
SearchAttributes = (SMBFileAttributes)LittleEndianConverter.ToUInt16(parameters, 0);
|
||||||
SearchCount = LittleEndianConverter.ToUInt16(parameters, 2);
|
SearchCount = LittleEndianConverter.ToUInt16(parameters, 2);
|
||||||
Flags = (FindFlags)LittleEndianConverter.ToUInt16(parameters, 4);
|
Flags = (FindFlags)LittleEndianConverter.ToUInt16(parameters, 4);
|
||||||
InformationLevel = (FindInformationLevel)LittleEndianConverter.ToUInt16(parameters, 6);
|
InformationLevel = (FindInformationLevel)LittleEndianConverter.ToUInt16(parameters, 6);
|
||||||
|
|
|
@ -20,7 +20,7 @@ namespace SMBLibrary.SMB1
|
||||||
public Open2Flags Flags;
|
public Open2Flags Flags;
|
||||||
public AccessModeOptions AccessMode;
|
public AccessModeOptions AccessMode;
|
||||||
public ushort Reserved1;
|
public ushort Reserved1;
|
||||||
public FileAttributes FileAttributes;
|
public SMBFileAttributes FileAttributes;
|
||||||
public DateTime CreationTime; // UTIME (seconds since Jan 1, 1970)
|
public DateTime CreationTime; // UTIME (seconds since Jan 1, 1970)
|
||||||
public OpenMode OpenMode;
|
public OpenMode OpenMode;
|
||||||
public uint AllocationSize;
|
public uint AllocationSize;
|
||||||
|
@ -40,7 +40,7 @@ namespace SMBLibrary.SMB1
|
||||||
Flags = (Open2Flags)LittleEndianConverter.ToUInt16(parameters, 0);
|
Flags = (Open2Flags)LittleEndianConverter.ToUInt16(parameters, 0);
|
||||||
AccessMode = new AccessModeOptions(parameters, 2);
|
AccessMode = new AccessModeOptions(parameters, 2);
|
||||||
Reserved1 = LittleEndianConverter.ToUInt16(parameters, 4);
|
Reserved1 = LittleEndianConverter.ToUInt16(parameters, 4);
|
||||||
FileAttributes = (FileAttributes)LittleEndianConverter.ToUInt16(parameters, 6);
|
FileAttributes = (SMBFileAttributes)LittleEndianConverter.ToUInt16(parameters, 6);
|
||||||
CreationTime = SMB1Helper.ReadUTime(parameters, 8);
|
CreationTime = SMB1Helper.ReadUTime(parameters, 8);
|
||||||
OpenMode = new OpenMode(parameters, 12);
|
OpenMode = new OpenMode(parameters, 12);
|
||||||
AllocationSize = LittleEndianConverter.ToUInt32(parameters, 14);
|
AllocationSize = LittleEndianConverter.ToUInt32(parameters, 14);
|
||||||
|
|
|
@ -19,7 +19,7 @@ namespace SMBLibrary.SMB1
|
||||||
public int ParametersLength = 30;
|
public int ParametersLength = 30;
|
||||||
// Parameters
|
// Parameters
|
||||||
public ushort FID;
|
public ushort FID;
|
||||||
public FileAttributes FileAttributes;
|
public SMBFileAttributes FileAttributes;
|
||||||
public DateTime CreationTime;
|
public DateTime CreationTime;
|
||||||
public uint FileDataSize;
|
public uint FileDataSize;
|
||||||
public AccessModeOptions AccessMode;
|
public AccessModeOptions AccessMode;
|
||||||
|
@ -38,7 +38,7 @@ namespace SMBLibrary.SMB1
|
||||||
public Transaction2Open2Response(byte[] parameters, byte[] data, bool isUnicode) : base()
|
public Transaction2Open2Response(byte[] parameters, byte[] data, bool isUnicode) : base()
|
||||||
{
|
{
|
||||||
FID = LittleEndianConverter.ToUInt16(parameters, 0);
|
FID = LittleEndianConverter.ToUInt16(parameters, 0);
|
||||||
FileAttributes = (FileAttributes)LittleEndianConverter.ToUInt16(parameters, 2);
|
FileAttributes = (SMBFileAttributes)LittleEndianConverter.ToUInt16(parameters, 2);
|
||||||
CreationTime = SMB1Helper.ReadUTime(parameters, 4);
|
CreationTime = SMB1Helper.ReadUTime(parameters, 4);
|
||||||
FileDataSize = LittleEndianConverter.ToUInt32(parameters, 8);
|
FileDataSize = LittleEndianConverter.ToUInt32(parameters, 8);
|
||||||
AccessMode = new AccessModeOptions(parameters, 12);
|
AccessMode = new AccessModeOptions(parameters, 12);
|
||||||
|
|
|
@ -239,7 +239,6 @@
|
||||||
<Compile Include="SMB1\Commands\WriteResponse.cs" />
|
<Compile Include="SMB1\Commands\WriteResponse.cs" />
|
||||||
<Compile Include="SMB1\Enums\CommandName.cs" />
|
<Compile Include="SMB1\Enums\CommandName.cs" />
|
||||||
<Compile Include="SMB1\Enums\ExtendedFileAttributes.cs" />
|
<Compile Include="SMB1\Enums\ExtendedFileAttributes.cs" />
|
||||||
<Compile Include="SMB1\Enums\FileAttributes.cs" />
|
|
||||||
<Compile Include="SMB1\Enums\HeaderFlags.cs" />
|
<Compile Include="SMB1\Enums\HeaderFlags.cs" />
|
||||||
<Compile Include="SMB1\Enums\HeaderFlags2.cs" />
|
<Compile Include="SMB1\Enums\HeaderFlags2.cs" />
|
||||||
<Compile Include="SMB1\Enums\Locking\LockType.cs" />
|
<Compile Include="SMB1\Enums\Locking\LockType.cs" />
|
||||||
|
@ -256,6 +255,7 @@
|
||||||
<Compile Include="SMB1\Enums\Open\OpenResult.cs" />
|
<Compile Include="SMB1\Enums\Open\OpenResult.cs" />
|
||||||
<Compile Include="SMB1\Enums\ResourceType.cs" />
|
<Compile Include="SMB1\Enums\ResourceType.cs" />
|
||||||
<Compile Include="SMB1\Enums\SessionSetup\SessionSetupAction.cs" />
|
<Compile Include="SMB1\Enums\SessionSetup\SessionSetupAction.cs" />
|
||||||
|
<Compile Include="SMB1\Enums\SMBFileAttributes.cs" />
|
||||||
<Compile Include="SMB1\Enums\Transaction\TransactionFlags.cs" />
|
<Compile Include="SMB1\Enums\Transaction\TransactionFlags.cs" />
|
||||||
<Compile Include="SMB1\Enums\TreeConnect\OptionalSupportFlags.cs" />
|
<Compile Include="SMB1\Enums\TreeConnect\OptionalSupportFlags.cs" />
|
||||||
<Compile Include="SMB1\Enums\TreeConnect\ServiceName.cs" />
|
<Compile Include="SMB1\Enums\TreeConnect\ServiceName.cs" />
|
||||||
|
|
|
@ -117,8 +117,8 @@ namespace SMBLibrary.Server
|
||||||
return new ErrorResponse(CommandName.SMB_COM_DELETE);
|
return new ErrorResponse(CommandName.SMB_COM_DELETE);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!entry.IsDirectory && (request.SearchAttributes & SMBLibrary.SMB1.FileAttributes.Directory) > 0
|
if (!entry.IsDirectory && (request.SearchAttributes & SMBFileAttributes.Directory) > 0
|
||||||
|| entry.IsDirectory && (request.SearchAttributes & SMBLibrary.SMB1.FileAttributes.Directory) == 0)
|
|| entry.IsDirectory && (request.SearchAttributes & SMBFileAttributes.Directory) == 0)
|
||||||
{
|
{
|
||||||
header.Status = NTStatus.STATUS_OBJECT_PATH_INVALID;
|
header.Status = NTStatus.STATUS_OBJECT_PATH_INVALID;
|
||||||
return new ErrorResponse(CommandName.SMB_COM_DELETE);
|
return new ErrorResponse(CommandName.SMB_COM_DELETE);
|
||||||
|
@ -227,15 +227,15 @@ namespace SMBLibrary.Server
|
||||||
bool? isHidden = null;
|
bool? isHidden = null;
|
||||||
bool? isReadOnly = null;
|
bool? isReadOnly = null;
|
||||||
bool? isArchived = null;
|
bool? isArchived = null;
|
||||||
if ((request.FileAttributes & SMBLibrary.SMB1.FileAttributes.Hidden) > 0)
|
if ((request.FileAttributes & SMBFileAttributes.Hidden) > 0)
|
||||||
{
|
{
|
||||||
isHidden = true;
|
isHidden = true;
|
||||||
}
|
}
|
||||||
if ((request.FileAttributes & SMBLibrary.SMB1.FileAttributes.ReadOnly) > 0)
|
if ((request.FileAttributes & SMBFileAttributes.ReadOnly) > 0)
|
||||||
{
|
{
|
||||||
isReadOnly = true;
|
isReadOnly = true;
|
||||||
}
|
}
|
||||||
if ((request.FileAttributes & SMBLibrary.SMB1.FileAttributes.Archive) > 0)
|
if ((request.FileAttributes & SMBFileAttributes.Archive) > 0)
|
||||||
{
|
{
|
||||||
isArchived = true;
|
isArchived = true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -313,24 +313,24 @@ namespace SMBLibrary.Server
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static FileAttributes GetFileAttributes(FileSystemEntry entry)
|
public static SMBFileAttributes GetFileAttributes(FileSystemEntry entry)
|
||||||
{
|
{
|
||||||
FileAttributes attributes = FileAttributes.Normal;
|
SMBFileAttributes attributes = SMBFileAttributes.Normal;
|
||||||
if (entry.IsHidden)
|
if (entry.IsHidden)
|
||||||
{
|
{
|
||||||
attributes |= FileAttributes.Hidden;
|
attributes |= SMBFileAttributes.Hidden;
|
||||||
}
|
}
|
||||||
if (entry.IsReadonly)
|
if (entry.IsReadonly)
|
||||||
{
|
{
|
||||||
attributes |= FileAttributes.ReadOnly;
|
attributes |= SMBFileAttributes.ReadOnly;
|
||||||
}
|
}
|
||||||
if (entry.IsArchived)
|
if (entry.IsArchived)
|
||||||
{
|
{
|
||||||
attributes |= FileAttributes.Archive;
|
attributes |= SMBFileAttributes.Archive;
|
||||||
}
|
}
|
||||||
if (entry.IsDirectory)
|
if (entry.IsDirectory)
|
||||||
{
|
{
|
||||||
attributes |= FileAttributes.Directory;
|
attributes |= SMBFileAttributes.Directory;
|
||||||
}
|
}
|
||||||
|
|
||||||
return attributes;
|
return attributes;
|
||||||
|
|
|
@ -102,7 +102,7 @@ namespace SMBLibrary.Server
|
||||||
return new ErrorResponse(CommandName.SMB_COM_OPEN_ANDX);
|
return new ErrorResponse(CommandName.SMB_COM_OPEN_ANDX);
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((request.FileAttrs & SMB1.FileAttributes.Directory) > 0)
|
if ((request.FileAttrs & SMBFileAttributes.Directory) > 0)
|
||||||
{
|
{
|
||||||
System.Diagnostics.Debug.Print("[{0}] OpenAndX: Creating directory '{1}'", DateTime.Now.ToString("HH:mm:ss:ffff"), path);
|
System.Diagnostics.Debug.Print("[{0}] OpenAndX: Creating directory '{1}'", DateTime.Now.ToString("HH:mm:ss:ffff"), path);
|
||||||
entry = fileSystem.CreateDirectory(path);
|
entry = fileSystem.CreateDirectory(path);
|
||||||
|
@ -205,11 +205,11 @@ namespace SMBLibrary.Server
|
||||||
OpenAndXResponse response = new OpenAndXResponse();
|
OpenAndXResponse response = new OpenAndXResponse();
|
||||||
if (entry.IsDirectory)
|
if (entry.IsDirectory)
|
||||||
{
|
{
|
||||||
response.FileAttrs = SMBLibrary.SMB1.FileAttributes.Directory;
|
response.FileAttrs = SMBFileAttributes.Directory;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
response.FileAttrs = SMBLibrary.SMB1.FileAttributes.Normal;
|
response.FileAttrs = SMBFileAttributes.Normal;
|
||||||
}
|
}
|
||||||
response.FID = fileID;
|
response.FID = fileID;
|
||||||
response.LastWriteTime = entry.LastWriteTime;
|
response.LastWriteTime = entry.LastWriteTime;
|
||||||
|
@ -225,11 +225,11 @@ namespace SMBLibrary.Server
|
||||||
OpenAndXResponseExtended response = new OpenAndXResponseExtended();
|
OpenAndXResponseExtended response = new OpenAndXResponseExtended();
|
||||||
if (entry.IsDirectory)
|
if (entry.IsDirectory)
|
||||||
{
|
{
|
||||||
response.FileAttrs = SMBLibrary.SMB1.FileAttributes.Directory;
|
response.FileAttrs = SMBFileAttributes.Directory;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
response.FileAttrs = SMBLibrary.SMB1.FileAttributes.Normal;
|
response.FileAttrs = SMBFileAttributes.Normal;
|
||||||
}
|
}
|
||||||
response.FID = fileID;
|
response.FID = fileID;
|
||||||
response.LastWriteTime = entry.LastWriteTime;
|
response.LastWriteTime = entry.LastWriteTime;
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue