public EnumerateExtPack(BER br) { FileBitmap = br.ReadUInt16(); DirectoryBitmap = br.ReadUInt16(); ActualCount = br.ReadUInt16(); for (int x = 0; x < ActualCount; x++) { ushort cb = br.ReadUInt16(); ushort fd = br.ReadUInt16(); BER brInner = new BER(new MemoryStream(br.ReadBytes(cb - 4), false)); bool isDir = ((fd & 0x8000) != 0); Ents.Add(new FileParameters(brInner, !isDir, isDir ? DirectoryBitmap : FileBitmap)); UtPadding.Read2(br.BaseStream); } }
public FileParameters(BER br, bool IsFile, ushort Bitmap) { Stream si = br.BaseStream; Int64 off = si.Position; IsDirectory = !IsFile; ushort? LongNameOff = null; ushort? ShortNameOff = null; if (0 != (Bitmap & 1U)) Attributes = br.ReadUInt16(); if (0 != (Bitmap & 2U)) ParentDirectoryID = br.ReadUInt32(); if (0 != (Bitmap & 4U)) CreationDate = br.ReadUInt32(); if (0 != (Bitmap & 8U)) ModificationDate = br.ReadUInt32(); if (0 != (Bitmap & 16U)) BackupDate = br.ReadUInt32(); if (0 != (Bitmap & 32U)) FinderInfo = br.ReadBytes(32); if (0 != (Bitmap & 64U)) LongNameOff = br.ReadUInt16(); if (0 != (Bitmap & 128U)) ShortNameOff = br.ReadUInt16(); if (0 != (Bitmap & 256U)) NodeID = br.ReadUInt32(); if (IsFile) { if (0 != (Bitmap & 512U)) DataForkSize = br.ReadUInt32(); if (0 != (Bitmap & 1024U)) ResourceForkSize = br.ReadUInt32(); if (0 != (Bitmap & 2048U)) ExtDataForkSize = br.ReadInt64(); if (0 != (Bitmap & 4096U)) throw new NotSupportedException("Launch limit"); if (0 != (Bitmap & 8192U)) throw new NotSupportedException("UTF-8 name"); if (0 != (Bitmap & 16384U)) ExtResourceForkSize = br.ReadInt64(); if (0 != (Bitmap & 32768U)) UnixPrivs = new FPUnixPrivs(br); } else { if (0 != (Bitmap & 512U)) OffspringCount = br.ReadUInt16(); if (0 != (Bitmap & 1024U)) throw new NotSupportedException("Owner ID"); if (0 != (Bitmap & 2048U)) throw new NotSupportedException("Group ID"); if (0 != (Bitmap & 4096U)) AccessRights = br.ReadUInt32(); if (0 != (Bitmap & 8192U)) throw new NotSupportedException("Unicode Name"); if (0 != (Bitmap & 16384U)) throw new NotSupportedException("?"); if (0 != (Bitmap & 32768U)) UnixPrivs = new FPUnixPrivs(br); } if (LongNameOff.HasValue) { si.Position = off + LongNameOff.Value; LongName = UtAfp.Read1Str(si); } if (ShortNameOff.HasValue) { si.Position = off + ShortNameOff.Value; ShortName = UtAfp.Read1Str(si); } }
public OpenForkPack(BER br) { Bitmap = br.ReadUInt16(); Fork = br.ReadUInt16(); Parms = new FileParameters(br, true, Bitmap); }
public GetFileDirParmsPack(BER br) { FileBitmap = br.ReadUInt16(); DirectoryBitmap = br.ReadUInt16(); FileDir = br.ReadByte(); br.ReadByte(); Parms = new FileParameters(br, (0 == (0x80 & FileDir)), (0 != (0x80 & FileDir)) ? DirectoryBitmap : FileBitmap); }
public VolumeParameters(BER br, ushort Bitmap) { Stream si = br.BaseStream; Int64 off = si.Position; ushort? VolNameOff = null; if (0 != (Bitmap & 1U)) VolAttribute = br.ReadUInt16(); if (0 != (Bitmap & 2U)) VolSignature = br.ReadUInt16(); if (0 != (Bitmap & 4U)) CreateDate = br.ReadUInt32(); if (0 != (Bitmap & 8U)) ModDate = br.ReadUInt32(); if (0 != (Bitmap & 16U)) VolBackupDate = br.ReadUInt32(); if (0 != (Bitmap & 32U)) VolID = br.ReadUInt16(); if (0 != (Bitmap & 64U)) VolBytesFree = br.ReadUInt32(); if (0 != (Bitmap & 128U)) VolBytesTotal = br.ReadUInt32(); if (0 != (Bitmap & 256U)) VolNameOff = br.ReadUInt16(); if (0 != (Bitmap & 512U)) VolExtBytesFree = br.ReadUInt64(); if (0 != (Bitmap & 1024U)) VolExtBytesTotal = br.ReadUInt64(); if (0 != (Bitmap & 2048U)) VolBlockSize = br.ReadUInt32(); if (VolNameOff != null) { si.Position = off + VolNameOff.Value; VolName = UtAfp.Read1Str(si); } }
public DHXReplyPack(BER br) { Id = br.ReadUInt16(); Mb = br.ReadBytes(16); nonce_ss = br.ReadBytes(32); }
public TwoWay1stPack(BER br) { Id = br.ReadUInt16(); ServerKey = br.ReadBytes(8); }
public DSIPack(Stream si) { BER br = new BER(si); Flags = br.ReadByte(); Command = br.ReadByte(); RequestID = br.ReadUInt16(); ErrorCode = br.ReadInt32(); TotalDataLength = br.ReadUInt32(); Reserved = br.ReadUInt32(); Payload = br.ReadBytes(Convert.ToInt32(TotalDataLength)); }
public GetSrvrInfoPack(BER br) { Stream si = br.BaseStream; MachineTypeOff = br.ReadUInt16(); AFPVersionCountOff = br.ReadUInt16(); UAMCountOff = br.ReadUInt16(); VolumeIconAndMaskOff = br.ReadUInt16(); Flags = br.ReadUInt16(); ServerName = UtAfp.Read1Str(si); ServerSignatureOff = br.ReadUInt16(); NetworkAddressesCountOff = br.ReadUInt16(); DirectoryNamesCountOff = br.ReadUInt16(); UTF8ServerNameOff = br.ReadUInt16(); { si.Position = AFPVersionCountOff; int cnt = br.ReadByte(); for (int x = 0; x < cnt; x++) { AFPVersionsList.Add(UtAfp.Read1Str(si)); } } { si.Position = UAMCountOff; int cnt = br.ReadByte(); for (int x = 0; x < cnt; x++) { UAMsList.Add(UtAfp.Read1Str(si)); } } }
public OpenVolPack(BER br) { Bitmap = br.ReadUInt16(); Ent = new VolumeParameters(br, Bitmap); }