Exemplo n.º 1
0
        public static nfs_argop4 generateRequest(bool CacheThis, byte[] SessId,
        int SeqId, int HighestSlot, int SlotId)
        {

            nfs_argop4 op = new nfs_argop4();
            op.argop = nfs_opnum4.OP_SEQUENCE;
            op.opsequence = new SEQUENCE4args();
            op.opsequence.sa_cachethis = CacheThis;

            slotid4 sId = new slotid4();
            sId.value = new uint32_t(SlotId);
            op.opsequence.sa_slotid = sId;

            slotid4 HsId = new slotid4();
            HsId.value = new uint32_t(HighestSlot);
            op.opsequence.sa_highest_slotid = HsId;

            sequenceid4 seq = new sequenceid4();
            seq.value = new uint32_t(++SeqId);
            op.opsequence.sa_sequenceid = seq;

            sessionid4 sess = new sessionid4();
            sess.value = SessId;
            op.opsequence.sa_sessionid = sess;

            return op;
        }
Exemplo n.º 2
0
        public static nfs_argop4 standard(sessionid4 sessionid)
        {

            nfs_argop4 op = new nfs_argop4();
            op.argop = nfs_opnum4.OP_DESTROY_SESSION;
            op.opdestroy_session = new DESTROY_SESSION4args();

            op.opdestroy_session.dsa_sessionid = sessionid;

            return op;
        }
Exemplo n.º 3
0
        public static nfs_argop4 standard(sessionid4 sessionid)
        {
            nfs_argop4 op = new nfs_argop4();

            op.argop             = nfs_opnum4.OP_DESTROY_SESSION;
            op.opdestroy_session = new DESTROY_SESSION4args();

            op.opdestroy_session.dsa_sessionid = sessionid;

            return(op);
        }
Exemplo n.º 4
0
        private void destroy_session()
        {
            if (_sessionid != null)
            {
                List <nfs_argop4> ops = new List <nfs_argop4>();

                ops.Add(DestroySessionStub.standard(_sessionid));

                COMPOUND4res compound4res = sendCompound(ops, "");
                _sessionid = null;
            }
        }
Exemplo n.º 5
0
        private void create_session()
        {
            List <nfs_argop4> ops = new List <nfs_argop4>();

            ops.Add(CreateSessionStub.standard(_clientIdByServer, _sequenceID));

            COMPOUND4res compound4res = sendCompound(ops, "");

            if (compound4res.status == nfsstat4.NFS4_OK)
            {
                _sessionid = compound4res.resarray[0].opcreate_session.csr_resok4.csr_sessionid;
                // FIXME: no idea why, but other wise server reply MISORDER
                _sequenceID.value.value = 0;

                maxTRrate = compound4res.resarray[0].opcreate_session.csr_resok4.csr_fore_chan_attrs.ca_maxrequestsize.value.value;
                maxRXrate = compound4res.resarray[0].opcreate_session.csr_resok4.csr_fore_chan_attrs.ca_maxresponsesize.value.value;
            }
            else
            {
                throw new NFSConnectionException(nfsstat4.getErrorString(compound4res.status));
            }
        }