static int dissect_nlm_cancel(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree,int version) { if(nlm_match_msgres){ rpc_call_info_value *rpc_call=(rpc_call_info_value *)pinfo->private_data; if(rpc_call->proc==8){ /* NLM_CANCEL_MSG */ if( (!pinfo->fd->flags.visited) ){ nlm_register_unmatched_msg(pinfo, tvb, offset); } else { nlm_print_msgres_request(pinfo, tree, tvb); } /* for the fhandle matching that finds both request and response packet */ if(nfs_fhandle_reqrep_matching){ nlm_match_fhandle_request(pinfo, tree); } } } offset = dissect_rpc_data(tvb, tree, hf_nlm_cookie, offset); offset = dissect_rpc_bool(tvb, tree, hf_nlm_block, offset); offset = dissect_rpc_bool(tvb, tree, hf_nlm_exclusive, offset); offset = dissect_lock(tvb, pinfo, tree, version, offset); return offset; }
static int dissect_holder(tvbuff_t *tvb, proto_tree *tree, int offset) { proto_item* lock_item = NULL; proto_tree* lock_tree = NULL; lock_item = proto_tree_add_item(tree, hf_klm_holder, tvb, offset, -1, ENC_NA); lock_tree = proto_item_add_subtree(lock_item, ett_klm_holder); offset = dissect_rpc_bool( tvb, lock_tree, hf_klm_exclusive, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_klm_pid, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_klm_offset, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_klm_len, offset); return offset; }
static int dissect_rquota(tvbuff_t *tvb, int offset, proto_tree *tree) { proto_item *lock_item = NULL; proto_tree *lock_tree = NULL; lock_item = proto_tree_add_item(tree, hf_rquota_rquota, tvb, offset, -1, FALSE); lock_tree = proto_item_add_subtree(lock_item, ett_rquota_rquota); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_bsize, offset); offset = dissect_rpc_bool(tvb, lock_tree, hf_rquota_active, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_bhardlimit, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_bsoftlimit, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_curblocks, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_fhardlimit, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_fsoftlimit, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_curfiles, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_btimeleft, offset); offset = dissect_rpc_uint32(tvb, lock_tree, hf_rquota_ftimeleft, offset); return offset; }
static int dissect_create_link_parms(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree) { char *str; offset = dissect_rpc_uint32(tvb, tree, hf_vxi11_core_client_id, offset); offset = dissect_rpc_bool(tvb, tree, hf_vxi11_core_lock_device, offset); offset = dissect_rpc_uint32(tvb, tree, hf_vxi11_core_lock_timeout, offset); offset = dissect_rpc_string(tvb, tree, hf_vxi11_core_device, offset, &str); if (tree) { proto_item_append_text(tree, " (Create_LinkParms) %s", str); } col_append_fstr(pinfo->cinfo, COL_INFO, " %s", str); return offset; }
return offset + 4; } /* Dissectors for individual RPC requests and responses. */ static int dissect_create_link_parms(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, void* data _U_) { const char *str; offset = dissect_rpc_uint32(tvb, tree, hf_vxi11_core_client_id, offset); offset = dissect_rpc_bool(tvb, tree, hf_vxi11_core_lock_device, offset); offset = dissect_rpc_uint32(tvb, tree, hf_vxi11_core_lock_timeout, offset); offset = dissect_rpc_string(tvb, tree, hf_vxi11_core_device, offset, &str); if (tree) { proto_item_append_text(tree, " (Create_LinkParms) %s", str); } col_append_fstr(pinfo->cinfo, COL_INFO, " %s", str); return offset; } static int dissect_create_link_resp(tvbuff_t *tvb, int offset,