Example #1
0
        public static nfs_argop4 normalCREATE(String path, int sequenceId,
        clientid4 clientid, int access)
        {
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            nfs_argop4 op = new nfs_argop4();
            op.argop = nfs_opnum4.OP_OPEN;
            op.opopen = new OPEN4args();

            op.opopen.seqid = new seqid4(new uint32_t(sequenceId));

            state_owner4 owner = new state_owner4();
            owner.clientid = clientid;
            owner.owner = encoding.GetBytes("nfsclient");
            op.opopen.owner = new open_owner4(owner);

            //if ((access & NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_DELEG_MASK) == 0)
           // {
           //     access |= NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
           // }
            op.opopen.share_access = new uint32_t(access);
            op.opopen.share_deny = new uint32_t(NFSv4Protocol.OPEN4_SHARE_DENY_NONE);

            openflag4 flag = new openflag4();
            flag.opentype = opentype4.OPEN4_CREATE;

            // createhow4(mode, attrs, verifier)
            createhow4 how = new createhow4();
            how.mode = createmode4.GUARDED4;
            //how.mode = createmode4.EXCLUSIVE4_1;
            fattr4 attr = new fattr4();

            attr.attrmask = openFattrBitmap();
            attr.attr_vals = new attrlist4();
            attr.attr_vals.value = openAttrs(7,7,7,0);

            how.createattrs = attr;
            how.createverf = new verifier4(0);  //it is long
            //how.mode = createmode4.GUARDED4;

            flag.how = how;
            op.opopen.openhow = flag;

            open_claim4 claim = new open_claim4();
            claim.claim = open_claim_type4.CLAIM_NULL;
            claim.file = new component4(new utf8str_cs(new utf8string(encoding
                    .GetBytes(path))));
            claim.delegate_type = NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
            claim.file_delegate_prev = null;
            claim.oc_delegate_stateid = null;
            claim.delegate_type = 0;
            claim.delegate_cur_info = null;

            op.opopen.claim = claim;

            return op;
        }
Example #2
0
        public static nfs_argop4 normalREAD(String path, int sequenceId,
                                            clientid4 clientid, int access)
        {
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            nfs_argop4 op = new nfs_argop4();

            op.argop  = nfs_opnum4.OP_OPEN;
            op.opopen = new OPEN4args();

            op.opopen.seqid = new seqid4(new uint32_t(sequenceId));

            // if ((access & nfs4_prot.OPEN4_SHARE_ACCESS_WANT_DELEG_MASK) == 0){
            // access |= nfs4_prot.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
            // }
            // op.opopen.share_access = new uint32_t(access);
            op.opopen.share_access = new uint32_t(NFSv4Protocol.OPEN4_SHARE_ACCESS_READ);
            op.opopen.share_deny   = new uint32_t(NFSv4Protocol.OPEN4_SHARE_DENY_NONE);

            state_owner4 owner = new state_owner4();

            owner.clientid = clientid;

            owner.owner     = encoding.GetBytes("nfsclient");
            op.opopen.owner = new open_owner4(owner);

            openflag4 flag = new openflag4();

            flag.opentype = opentype4.OPEN4_NOCREATE;

            createhow4 how = new createhow4();

            how.mode          = createmode4.UNCHECKED4;
            flag.how          = how;
            op.opopen.openhow = flag;

            open_claim4 claim = new open_claim4();

            claim.claim               = open_claim_type4.CLAIM_NULL;
            claim.file                = new component4(new utf8str_cs(new utf8string(encoding.GetBytes(path))));
            claim.delegate_type       = NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
            claim.file_delegate_prev  = null;
            claim.oc_delegate_stateid = null;
            claim.delegate_type       = 0;
            claim.delegate_cur_info   = null;

            op.opopen.claim = claim;

            return(op);
        }
Example #3
0
        public static nfs_argop4 normalREAD(String path, int sequenceId,
        clientid4 clientid, int access)
        {
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            nfs_argop4 op = new nfs_argop4();
            op.argop = nfs_opnum4.OP_OPEN;
            op.opopen = new OPEN4args();

            op.opopen.seqid = new seqid4(new uint32_t(sequenceId));

            // if ((access & nfs4_prot.OPEN4_SHARE_ACCESS_WANT_DELEG_MASK) == 0){
            // access |= nfs4_prot.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
            // }
            // op.opopen.share_access = new uint32_t(access);
            op.opopen.share_access = new uint32_t(NFSv4Protocol.OPEN4_SHARE_ACCESS_READ);
            op.opopen.share_deny = new uint32_t(NFSv4Protocol.OPEN4_SHARE_DENY_NONE);

            state_owner4 owner = new state_owner4();
            owner.clientid = clientid;

            owner.owner = encoding.GetBytes("nfsclient");
            op.opopen.owner = new open_owner4(owner);

            openflag4 flag = new openflag4();
            flag.opentype = opentype4.OPEN4_NOCREATE;

            createhow4 how = new createhow4();
            how.mode = createmode4.UNCHECKED4;
            flag.how = how;
            op.opopen.openhow = flag;

            open_claim4 claim = new open_claim4();
            claim.claim = open_claim_type4.CLAIM_NULL;
            claim.file = new component4(new utf8str_cs(new utf8string(encoding.GetBytes(path))));
            claim.delegate_type = NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
            claim.file_delegate_prev = null;
            claim.oc_delegate_stateid = null;
            claim.delegate_type = 0;
            claim.delegate_cur_info = null;

            op.opopen.claim = claim;

            return op;
        }
Example #4
0
        public static nfs_argop4 normalCREATE(String path, int sequenceId,
                                              clientid4 clientid, int access)
        {
            System.Text.UTF8Encoding encoding = new System.Text.UTF8Encoding();
            nfs_argop4 op = new nfs_argop4();

            op.argop  = nfs_opnum4.OP_OPEN;
            op.opopen = new OPEN4args();

            op.opopen.seqid = new seqid4(new uint32_t(sequenceId));

            state_owner4 owner = new state_owner4();

            owner.clientid  = clientid;
            owner.owner     = encoding.GetBytes("nfsclient");
            op.opopen.owner = new open_owner4(owner);

            //if ((access & NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_DELEG_MASK) == 0)
            // {
            //     access |= NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
            // }
            op.opopen.share_access = new uint32_t(access);
            op.opopen.share_deny   = new uint32_t(NFSv4Protocol.OPEN4_SHARE_DENY_NONE);

            openflag4 flag = new openflag4();

            flag.opentype = opentype4.OPEN4_CREATE;

            // createhow4(mode, attrs, verifier)
            createhow4 how = new createhow4();

            how.mode = createmode4.GUARDED4;
            //how.mode = createmode4.EXCLUSIVE4_1;
            fattr4 attr = new fattr4();

            attr.attrmask        = openFattrBitmap();
            attr.attr_vals       = new attrlist4();
            attr.attr_vals.value = openAttrs(7, 7, 7, 0);

            how.createattrs = attr;
            how.createverf  = new verifier4(0); //it is long
            //how.mode = createmode4.GUARDED4;

            flag.how          = how;
            op.opopen.openhow = flag;

            open_claim4 claim = new open_claim4();

            claim.claim = open_claim_type4.CLAIM_NULL;
            claim.file  = new component4(new utf8str_cs(new utf8string(encoding
                                                                       .GetBytes(path))));
            claim.delegate_type       = NFSv4Protocol.OPEN4_SHARE_ACCESS_WANT_NO_DELEG;
            claim.file_delegate_prev  = null;
            claim.oc_delegate_stateid = null;
            claim.delegate_type       = 0;
            claim.delegate_cur_info   = null;

            op.opopen.claim = claim;

            return(op);
        }