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; }
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); }
public void xdrDecode(XdrDecodingStream xdr) { csa_sequenceid = new sequenceid4(xdr); csa_slotid = new slotid4(xdr); csa_highest_slotid = new slotid4(xdr); csa_cachethis = xdr.xdrDecodeBoolean(); { int _size = xdr.xdrDecodeInt(); csa_referring_call_lists = new referring_call_list4[_size]; for ( int _idx = 0; _idx < _size; ++_idx ) { csa_referring_call_lists[_idx] = new referring_call_list4(xdr); } } }
public void xdrDecode(XdrDecodingStream xdr) { csr_sequenceid = new sequenceid4(xdr); csr_slotid = new slotid4(xdr); csr_highest_slotid = new slotid4(xdr); csr_target_highest_slotid = new slotid4(xdr); }
public static nfs_argop4 standard(clientid4 eir_clientid, sequenceid4 eir_sequenceid) { nfs_argop4 op = new nfs_argop4(); op.argop = nfs_opnum4.OP_CREATE_SESSION; op.opcreate_session = new CREATE_SESSION4args(); channel_attrs4 chan_attrs = new channel_attrs4(); chan_attrs.ca_headerpadsize = new count4(new uint32_t(0)); chan_attrs.ca_maxoperations = new count4(new uint32_t(8)); chan_attrs.ca_maxrequests = new count4(new uint32_t(128)); chan_attrs.ca_maxrequestsize = new count4(new uint32_t(1049620)); chan_attrs.ca_maxresponsesize = new count4(new uint32_t(1049480)); chan_attrs.ca_maxresponsesize_cached = new count4(new uint32_t(2868)); chan_attrs.ca_rdma_ird = new uint32_t[0]; op.opcreate_session.csa_clientid = eir_clientid; op.opcreate_session.csa_sequence = eir_sequenceid; //connection back channel op.opcreate_session.csa_flags = new uint32_t(0); //3 if u want to use the back channel op.opcreate_session.csa_fore_chan_attrs = chan_attrs; //diferent chan attrs for fore channel channel_attrs4 back_chan_attrs = new channel_attrs4(); back_chan_attrs.ca_headerpadsize = new count4(new uint32_t(0)); back_chan_attrs.ca_maxoperations = new count4(new uint32_t(2)); back_chan_attrs.ca_maxrequests = new count4(new uint32_t(1)); back_chan_attrs.ca_maxrequestsize = new count4(new uint32_t(4096)); back_chan_attrs.ca_maxresponsesize = new count4(new uint32_t(4096)); back_chan_attrs.ca_maxresponsesize_cached = new count4(new uint32_t(0)); back_chan_attrs.ca_rdma_ird = new uint32_t[0]; op.opcreate_session.csa_back_chan_attrs = back_chan_attrs; op.opcreate_session.csa_cb_program = new uint32_t(0x40000000); callback_sec_parms4[] cb = new callback_sec_parms4[1]; callback_sec_parms4 callb = new callback_sec_parms4(); //new auth_sys params callb.cb_secflavor = auth_flavor.AUTH_SYS; callb.cbsp_sys_cred = new authsys_parms(); Random r = new Random(); callb.cbsp_sys_cred.stamp = r.Next(); //just random number callb.cbsp_sys_cred.gid = 0; //maybe root ? callb.cbsp_sys_cred.uid = 0; //maybe root ? callb.cbsp_sys_cred.machinename = System.Environment.MachineName; callb.cbsp_sys_cred.gids = new int[0]; //callb.cb_secflavor = auth_flavor.AUTH_NONE; cb[0] = callb; // op.opcreate_session.csa_sec_parms = new callback_sec_parms4[1]; op.opcreate_session.csa_sec_parms = cb; return(op); }
public void xdrDecode(XdrDecodingStream xdr) { csa_sequenceid = new sequenceid4(xdr); csa_slotid = new slotid4(xdr); csa_highest_slotid = new slotid4(xdr); csa_cachethis = xdr.xdrDecodeBoolean(); { int _size = xdr.xdrDecodeInt(); csa_referring_call_lists = new referring_call_list4[_size]; for (int _idx = 0; _idx < _size; ++_idx) { csa_referring_call_lists[_idx] = new referring_call_list4(xdr); } } }
private void exchange_ids() { List <nfs_argop4> ops = new List <nfs_argop4>(); String domain = "localhost"; String name = "NFS Client "; //String guid = System.Environment.MachineName + "@" + domain; String guid = System.Guid.NewGuid().ToString(); ops.Add(ExchengeIDStub.normal(domain, name, guid, NFSv4Protocol.EXCHGID4_FLAG_SUPP_MOVED_REFER + NFSv4Protocol.EXCHGID4_FLAG_USE_NON_PNFS, state_protect_how4.SP4_NONE)); COMPOUND4res compound4res = sendCompound(ops, ""); if (compound4res.status == nfsstat4.NFS4_OK) { /*if (compound4res.resarray[0].opexchange_id.eir_resok4.eir_server_impl_id.Length > 0) * { * string serverId = System.Text.Encoding.UTF8.GetString(compound4res.resarray[0].opexchange_id.eir_resok4.eir_server_impl_id[0].nii_name.value.value); * } * else * { * if (compound4res.resarray[0].opexchange_id.eir_resok4.eir_server_owner.so_major_id.Length > 0) * { * string serverId = System.Text.Encoding.UTF8.GetString(compound4res.resarray[0].opexchange_id.eir_resok4.eir_server_owner.so_major_id); * //throw new NFSConnectionException("Server name: ="+serverId); * } * }*/ _clientIdByServer = compound4res.resarray[0].opexchange_id.eir_resok4.eir_clientid; _sequenceID = compound4res.resarray[0].opexchange_id.eir_resok4.eir_sequenceid; } else { throw new NFSConnectionException(nfsstat4.getErrorString(compound4res.status)); } }
public static nfs_argop4 standard(clientid4 eir_clientid, sequenceid4 eir_sequenceid) { nfs_argop4 op = new nfs_argop4(); op.argop = nfs_opnum4.OP_CREATE_SESSION; op.opcreate_session = new CREATE_SESSION4args(); channel_attrs4 chan_attrs = new channel_attrs4(); chan_attrs.ca_headerpadsize = new count4(new uint32_t(0)); chan_attrs.ca_maxoperations = new count4(new uint32_t(8)); chan_attrs.ca_maxrequests = new count4(new uint32_t(128)); chan_attrs.ca_maxrequestsize = new count4(new uint32_t(1049620)); chan_attrs.ca_maxresponsesize = new count4(new uint32_t(1049480)); chan_attrs.ca_maxresponsesize_cached = new count4(new uint32_t(2868)); chan_attrs.ca_rdma_ird = new uint32_t[0]; op.opcreate_session.csa_clientid = eir_clientid; op.opcreate_session.csa_sequence = eir_sequenceid; //connection back channel op.opcreate_session.csa_flags = new uint32_t(0); //3 if u want to use the back channel op.opcreate_session.csa_fore_chan_attrs = chan_attrs; //diferent chan attrs for fore channel channel_attrs4 back_chan_attrs = new channel_attrs4(); back_chan_attrs.ca_headerpadsize = new count4(new uint32_t(0)); back_chan_attrs.ca_maxoperations = new count4(new uint32_t(2)); back_chan_attrs.ca_maxrequests = new count4(new uint32_t(1)); back_chan_attrs.ca_maxrequestsize = new count4(new uint32_t(4096)); back_chan_attrs.ca_maxresponsesize = new count4(new uint32_t(4096)); back_chan_attrs.ca_maxresponsesize_cached = new count4(new uint32_t(0)); back_chan_attrs.ca_rdma_ird = new uint32_t[0]; op.opcreate_session.csa_back_chan_attrs = back_chan_attrs; op.opcreate_session.csa_cb_program = new uint32_t(0x40000000); callback_sec_parms4[] cb = new callback_sec_parms4[1]; callback_sec_parms4 callb = new callback_sec_parms4(); //new auth_sys params callb.cb_secflavor = auth_flavor.AUTH_SYS; callb.cbsp_sys_cred = new authsys_parms(); Random r = new Random(); callb.cbsp_sys_cred.stamp = r.Next(); //just random number callb.cbsp_sys_cred.gid = 0; //maybe root ? callb.cbsp_sys_cred.uid = 0; //maybe root ? callb.cbsp_sys_cred.machinename = System.Environment.MachineName; callb.cbsp_sys_cred.gids = new int[0]; //callb.cb_secflavor = auth_flavor.AUTH_NONE; cb[0] = callb; // op.opcreate_session.csa_sec_parms = new callback_sec_parms4[1]; op.opcreate_session.csa_sec_parms = cb; return op; }