public RpcAuthentication(RpcCredentials credential)
        {
            _flavour = credential.AuthFlavour;

            MemoryStream ms = new MemoryStream();
            XdrDataWriter writer = new XdrDataWriter(ms);
            credential.Write(writer);
            _body = ms.ToArray();
        }
Beispiel #2
0
        protected XdrDataWriter StartCallMessage(MemoryStream ms, RpcCredentials credentials, uint procedure)
        {
            XdrDataWriter writer = new XdrDataWriter(ms);

            writer.Write(_client.NextTransactionId());
            writer.Write((int)RpcMessageType.Call);

            RpcCallHeader hdr = new RpcCallHeader();
            hdr.RpcVersion = RpcVersion;
            hdr.Program = (uint)Identifier;
            hdr.Version = (uint)Version;
            hdr.Proc = procedure;
            hdr.Credentials = new RpcAuthentication(credentials ?? new RpcNullCredentials());
            hdr.Verifier = RpcAuthentication.Null();
            hdr.Write(writer); 

            return writer;
        }
 internal override void Write(XdrDataWriter writer)
 {
     writer.Write((int)0);
     writer.Write(_machineName);
     writer.Write(_uid);
     writer.Write(_gid);
     if (_gids == null)
     {
         writer.Write((int)0);
     }
     else
     {
         writer.Write(_gids.Length);
         for (int i = 0; i < _gids.Length; ++i)
         {
             writer.Write(_gids[i]);
         }
     }
 }
Beispiel #4
0
        public Nfs3MountResult Mount(string dirPath)
        {
            MemoryStream  ms     = new MemoryStream();
            XdrDataWriter writer = StartCallMessage(ms, _client.Credentials, 1);

            writer.Write(dirPath);

            RpcReply reply = DoSend(ms);

            if (reply.Header.IsSuccess)
            {
                Nfs3Status status = (Nfs3Status)reply.BodyReader.ReadInt32();
                if (status == Nfs3Status.Ok)
                {
                    return(new Nfs3MountResult(reply.BodyReader));
                }

                throw new Nfs3Exception(status);
            }
            else
            {
                throw new RpcException(reply.Header.ReplyHeader);
            }
        }
Beispiel #5
0
 internal void Write(XdrDataWriter writer)
 {
     writer.WriteBuffer(Value);
 }
Beispiel #6
0
        ////public TimeSpan ToTimeSpan()
        ////{
        ////    return new TimeSpan(_seconds * TicksPerSec + (_nseconds / TicksPerNanoSec));
        ////}

        public void Write(XdrDataWriter writer)
        {
            writer.Write(_seconds);
            writer.Write(_nseconds);
        }
 public void Write(XdrDataWriter writer)
 {
     writer.Write((int)_flavour);
     writer.WriteBuffer(_body);
 }
 public void Write(XdrDataWriter writer)
 {
     writer.Write((int)_flavour);
     writer.WriteBuffer(_body);
 }