예제 #1
0
 internal Nfs3MountResult(XdrDataReader reader)
 {
     FileHandle = new Nfs3FileHandle(reader);
     int numAuthFlavours = reader.ReadInt32();
     AuthFlavours = new List<int>(numAuthFlavours);
     for (int i = 0; i < numAuthFlavours; ++i)
     {
         AuthFlavours.Add(reader.ReadInt32());
     }
 }
예제 #2
0
        public RpcMessageHeader(XdrDataReader reader)
        {
            TransactionId = reader.ReadUInt32();
            RpcMessageType type = (RpcMessageType)reader.ReadInt32();
            if (type != RpcMessageType.Reply)
            {
                throw new NotSupportedException("Parsing RPC call messages");
            }

            ReplyHeader = new RpcReplyHeader(reader);
        }
예제 #3
0
 public RpcReplyHeader(XdrDataReader reader)
 {
     Status = (RpcReplyStatus)reader.ReadInt32();
     if (Status == RpcReplyStatus.Accepted)
     {
         AcceptReply = new RpcAcceptedReplyHeader(reader);
     }
     else
     {
         RejectedReply = new RpcRejectedReplyHeader(reader);
     }
 }
        public RpcMessageHeader(XdrDataReader reader)
        {
            TransactionId = reader.ReadUInt32();
            RpcMessageType type = (RpcMessageType)reader.ReadInt32();

            if (type != RpcMessageType.Reply)
            {
                throw new NotSupportedException("Parsing RPC call messages");
            }

            ReplyHeader = new RpcReplyHeader(reader);
        }
        internal Nfs3FileSystemStatResult(XdrDataReader reader)
        {
            Status = (Nfs3Status)reader.ReadInt32();
            if (reader.ReadBool())
            {
                PostOpAttributes = new Nfs3FileAttributes(reader);
            }

            if (Status == Nfs3Status.Ok)
            {
                FileSystemStat = new Nfs3FileSystemStat(reader);
            }
        }
예제 #6
0
 internal Nfs3FileSystemInfo(XdrDataReader reader)
 {
     ReadMaxBytes            = reader.ReadUInt32();
     ReadPreferredBytes      = reader.ReadUInt32();
     ReadMultipleSize        = reader.ReadUInt32();
     WriteMaxBytes           = reader.ReadUInt32();
     WritePreferredBytes     = reader.ReadUInt32();
     WriteMultipleSize       = reader.ReadUInt32();
     DirectoryPreferredBytes = reader.ReadUInt32();
     MaxFileSize             = reader.ReadInt64();
     TimePrecision           = new Nfs3FileTime(reader);
     FileSystemProperties    = (Nfs3FileSystemProperties)reader.ReadInt32();
 }
예제 #7
0
        public Nfs3SetAttributes(XdrDataReader reader)
        {
            SetMode = reader.ReadBool();

            if (SetMode)
            {
                Mode = (UnixFilePermissions)reader.ReadInt32();
            }

            SetUid = reader.ReadBool();
            if (SetUid)
            {
                Uid = reader.ReadUInt32();
            }

            SetGid = reader.ReadBool();
            if (SetGid)
            {
                Gid = reader.ReadUInt32();
            }

            SetSize = reader.ReadBool();
            if (SetSize)
            {
                Size = reader.ReadInt64();
            }

            SetAccessTime = (Nfs3SetTimeMethod)reader.ReadInt32();
            if (SetAccessTime == Nfs3SetTimeMethod.ClientTime)
            {
                AccessTime = new Nfs3FileTime(reader);
            }

            SetModifyTime = (Nfs3SetTimeMethod)reader.ReadInt32();
            if (SetModifyTime == Nfs3SetTimeMethod.ClientTime)
            {
                ModifyTime = new Nfs3FileTime(reader);
            }
        }
예제 #8
0
        public Nfs3PathConfResult(XdrDataReader reader)
        {
            Status           = (Nfs3Status)reader.ReadInt32();
            ObjectAttributes = new Nfs3FileAttributes(reader);

            if (Status == Nfs3Status.Ok)
            {
                LinkMax         = reader.ReadUInt32();
                NameMax         = reader.ReadUInt32();
                NoTrunc         = reader.ReadBool();
                ChownRestricted = reader.ReadBool();
                CaseInsensitive = reader.ReadBool();
                CasePreserving  = reader.ReadBool();
            }
        }
예제 #9
0
        internal Nfs3LookupResult(XdrDataReader reader)
        {
            Status = (Nfs3Status)reader.ReadInt32();
            if (Status == Nfs3Status.Ok)
            {
                ObjectHandle = new Nfs3FileHandle(reader);
                if (reader.ReadBool())
                {
                    ObjectAttributes = new Nfs3FileAttributes(reader);
                }
            }

            if (reader.ReadBool())
            {
                DirAttributes = new Nfs3FileAttributes(reader);
            }
        }
예제 #10
0
        internal Nfs3CreateResult(XdrDataReader reader)
        {
            Status = (Nfs3Status)reader.ReadInt32();
            if (Status == Nfs3Status.Ok)
            {
                if (reader.ReadBool())
                {
                    FileHandle = new Nfs3FileHandle(reader);
                }

                if (reader.ReadBool())
                {
                    FileAttributes = new Nfs3FileAttributes(reader);
                }
            }

            CacheConsistency = new Nfs3WeakCacheConsistency(reader);
        }
예제 #11
0
        public Nfs3ReadDirPlusResult(XdrDataReader reader)
        {
            Status = (Nfs3Status)reader.ReadInt32();
            if (reader.ReadBool())
            {
                DirAttributes = new Nfs3FileAttributes(reader);
            }
            if (Status == Nfs3Status.Ok)
            {
                CookieVerifier = reader.ReadBytes(Nfs3.CookieVerifierSize);

                DirEntries = new List <Nfs3DirectoryEntry>();
                while (reader.ReadBool())
                {
                    Nfs3DirectoryEntry dirEntry = new Nfs3DirectoryEntry(reader);
                    DirEntries.Add(dirEntry);
                }

                Eof = reader.ReadBool();
            }
        }
        public Nfs3ReadDirPlusResult(XdrDataReader reader)
        {
            Status = (Nfs3Status)reader.ReadInt32();
            if (reader.ReadBool())
            {
                DirAttributes = new Nfs3FileAttributes(reader);
            }
            if (Status == Nfs3Status.Ok)
            {
                CookieVerifier = reader.ReadBytes(Nfs3.CookieVerifierSize);

                DirEntries = new List<Nfs3DirectoryEntry>();
                while (reader.ReadBool())
                {
                    Nfs3DirectoryEntry dirEntry = new Nfs3DirectoryEntry(reader);
                    DirEntries.Add(dirEntry);
                }

                Eof = reader.ReadBool();
            }
        }
예제 #13
0
        public Nfs3ReadDirResult(XdrDataReader reader)
        {
            Status = (Nfs3Status)reader.ReadInt32();

            if (reader.ReadBool())
            {
                DirAttributes = new Nfs3FileAttributes(reader);
            }

            DirEntries = new List <Nfs3DirectoryEntry>();
            if (Status == Nfs3Status.Ok)
            {
                CookieVerifier = reader.ReadUInt64();

                while (reader.ReadBool())
                {
                    DirEntries.Add(new Nfs3DirectoryEntry(reader));
                }

                Eof = reader.ReadBool();
            }
        }
예제 #14
0
 public RpcAuthentication(XdrDataReader reader)
 {
     _flavour = (RpcAuthFlavour)reader.ReadInt32();
     _body = reader.ReadBuffer(400);
 }
예제 #15
0
 internal Nfs3ModifyResult(XdrDataReader reader)
 {
     Status           = (Nfs3Status)reader.ReadInt32();
     CacheConsistency = new Nfs3WeakCacheConsistency(reader);
 }
예제 #16
0
 public RpcAuthentication(XdrDataReader reader)
 {
     _flavour = (RpcAuthFlavour)reader.ReadInt32();
     _body    = reader.ReadBuffer(400);
 }
 internal Nfs3GetAttributesResult(XdrDataReader reader)
 {
     Status     = (Nfs3Status)reader.ReadInt32();
     Attributes = new Nfs3FileAttributes(reader);
 }