Beispiel #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());
            }
        }
Beispiel #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);
        }
Beispiel #3
0
        internal Nfs3Export(XdrDataReader reader)
        {
            DirPath = reader.ReadString(Nfs3Mount.MaxPathLength);

            List <string> groups = new List <string>();

            while (reader.ReadBool())
            {
                groups.Add(reader.ReadString(Nfs3Mount.MaxNameLength));
            }

            Groups = groups;
        }
Beispiel #4
0
        protected RpcReply DoSend(MemoryStream ms)
        {
            RpcTcpTransport transport = _client.GetTransport(Identifier, Version);

            byte[] buffer = ms.ToArray();
            buffer = transport.Send(buffer);

            XdrDataReader    reader = new XdrDataReader(new MemoryStream(buffer));
            RpcMessageHeader header = new RpcMessageHeader(reader);

            return(new RpcReply()
            {
                Header = header, BodyReader = reader
            });
        }
        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();
            }
        }
Beispiel #6
0
 public RpcAuthentication(XdrDataReader reader)
 {
     _flavour = (RpcAuthFlavour)reader.ReadInt32();
     _body    = reader.ReadBuffer(400);
 }
Beispiel #7
0
 internal Nfs3FileHandle(XdrDataReader reader)
 {
     Value = reader.ReadBuffer(Nfs3Mount.MaxFileHandleSize);
 }
Beispiel #8
0
 public Nfs3FileTime(XdrDataReader reader)
 {
     _seconds  = reader.ReadUInt32();
     _nseconds = reader.ReadUInt32();
 }