--- /dev/null
+/* DO NOT EDIT
+ This filter was automatically generated
+ from /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstransblobs.idl and /home/metze/devel/samba/4.0/master4-franky/librpc/idl/frstransblobs.cnf.
+
+ Pidl is a perl based IDL compiler for DCE/RPC idl files.
+ It is maintained by the Samba team, not the Wireshark team.
+ Instructions on how to download and install Pidl can be
+ found at http://wiki.wireshark.org/Pidl
+
+ $Id$
+*/
+
+
+#include "config.h"
+#ifdef _MSC_VER
+#pragma warning(disable:4005)
+#pragma warning(disable:4013)
+#pragma warning(disable:4018)
+#pragma warning(disable:4101)
+#endif
+
+#include <glib.h>
+#include <string.h>
+#include <epan/packet.h>
+
+#include "packet-dcerpc.h"
+#include "packet-dcerpc-nt.h"
+#include "packet-windows-common.h"
+#include "packet-dcerpc-frstransblobs.h"
+
+/* Ett declarations */
+static gint ett_dcerpc_frstransblobs = -1;
+static gint ett_frstransblobs_compressedBlock = -1;
+static gint ett_frstransblobs_compressedDataFormat = -1;
+
+
+/* Header field declarations */
+static gint hf_frstransblobs_compressedBlock_Block_Signature = -1;
+static gint hf_frstransblobs_decode_compressedDataFormat_data = -1;
+static gint hf_frstransblobs_compressedDataFormat_block = -1;
+static gint hf_frstransblobs_compressedBlock_uncompressed_size = -1;
+static gint hf_frstransblobs_compressedBlock_compressed_size = -1;
+static gint hf_frstransblobs_compressedDataFormat_Signature = -1;
+static gint hf_frstransblobs_compressedBlock_data = -1;
+static gint hf_frstransblobs_opnum = -1;
+
+static gint proto_dcerpc_frstransblobs = -1;
+/* Version information */
+
+
+static e_uuid_t uuid_dcerpc_frstransblobs = {
+ 0x12345778, 0x1234, 0xbcde,
+ { 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }
+};
+static guint16 ver_dcerpc_frstransblobs = 0;
+
+static int frstransblobs_dissect_element_compressedBlock_Block_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedBlock_compressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedBlock_uncompressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedBlock_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedBlock_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedDataFormat_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_compressedDataFormat_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+static int frstransblobs_dissect_element_decode_compressedDataFormat_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_);
+
+
+/* IDL: struct { */
+/* IDL: [value("XBLO")] [charset(DOS)] uint8 Block_Signature[4]; */
+/* IDL: uint32 compressed_size; */
+/* IDL: uint32 uncompressed_size; */
+/* IDL: uint8 data[compressed_size]; */
+/* IDL: } */
+
+static int
+frstransblobs_dissect_element_compressedBlock_Block_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ int i;
+ for (i = 0; i < 4; i++)
+ offset = frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvb, offset, pinfo, tree, drep);
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_compressedBlock_Block_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_Block_Signature, 0);
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_compressedBlock_compressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_compressed_size, 0);
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_compressedBlock_uncompressed_size(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_uncompressed_size, 0);
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_compressedBlock_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_compressedBlock_data_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedBlock_data, 0);
+
+ return offset;
+}
+
+int
+frstransblobs_dissect_struct_compressedBlock(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+ int old_offset;
+
+
+ old_offset = offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_frstransblobs_compressedBlock);
+ }
+
+ offset = frstransblobs_dissect_element_compressedBlock_Block_Signature(tvb, offset, pinfo, tree, drep);
+
+ offset = frstransblobs_dissect_element_compressedBlock_compressed_size(tvb, offset, pinfo, tree, drep);
+
+ offset = frstransblobs_dissect_element_compressedBlock_uncompressed_size(tvb, offset, pinfo, tree, drep);
+
+ offset = frstransblobs_dissect_element_compressedBlock_data(tvb, offset, pinfo, tree, drep);
+
+
+ proto_item_set_len(item, offset-old_offset);
+
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
+ return offset;
+}
+
+
+/* IDL: struct { */
+/* IDL: [value("FRSX")] [charset(DOS)] uint8 Signature[4]; */
+/* IDL: compressedBlock block; */
+/* IDL: } */
+
+static int
+frstransblobs_dissect_element_compressedDataFormat_Signature(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ int i;
+ for (i = 0; i < 4; i++)
+ offset = frstransblobs_dissect_element_compressedDataFormat_Signature_(tvb, offset, pinfo, tree, drep);
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_compressedDataFormat_Signature_(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = PIDL_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_frstransblobs_compressedDataFormat_Signature, 0);
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_compressedDataFormat_block(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = frstransblobs_dissect_struct_compressedBlock(tvb,offset,pinfo,tree,drep,hf_frstransblobs_compressedDataFormat_block,0);
+
+ return offset;
+}
+
+int
+frstransblobs_dissect_struct_compressedDataFormat(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *parent_tree _U_, guint8 *drep _U_, int hf_index _U_, guint32 param _U_)
+{
+ proto_item *item = NULL;
+ proto_tree *tree = NULL;
+ dcerpc_info *di = (dcerpc_info *)pinfo->private_data;
+ int old_offset;
+
+
+ old_offset = offset;
+
+ if (parent_tree) {
+ item = proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, ENC_NA);
+ tree = proto_item_add_subtree(item, ett_frstransblobs_compressedDataFormat);
+ }
+
+ offset = frstransblobs_dissect_element_compressedDataFormat_Signature(tvb, offset, pinfo, tree, drep);
+
+ offset = frstransblobs_dissect_element_compressedDataFormat_block(tvb, offset, pinfo, tree, drep);
+
+
+ proto_item_set_len(item, offset-old_offset);
+
+
+ if (di->call_data->flags & DCERPC_IS_NDR64) {
+ ALIGN_TO_4_BYTES;
+ }
+
+ return offset;
+}
+
+static int
+frstransblobs_dissect_element_decode_compressedDataFormat_data(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ offset = frstransblobs_dissect_struct_compressedDataFormat(tvb,offset,pinfo,tree,drep,hf_frstransblobs_decode_compressedDataFormat_data,0);
+
+ return offset;
+}
+
+/* IDL: void decode_compressedDataFormat( */
+/* IDL: [in] compressedDataFormat data */
+/* IDL: ); */
+
+static int
+frstransblobs_dissect_decode_compressedDataFormat_response(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ pinfo->dcerpc_procedure_name="decode_compressedDataFormat";
+ return offset;
+}
+
+static int
+frstransblobs_dissect_decode_compressedDataFormat_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
+{
+ pinfo->dcerpc_procedure_name="decode_compressedDataFormat";
+ offset = frstransblobs_dissect_element_decode_compressedDataFormat_data(tvb, offset, pinfo, tree, drep);
+ offset = dissect_deferred_pointers(pinfo, tvb, offset, drep);
+ return offset;
+}
+
+
+static dcerpc_sub_dissector frstransblobs_dissectors[] = {
+ { 0, "decode_compressedDataFormat",
+ frstransblobs_dissect_decode_compressedDataFormat_request, frstransblobs_dissect_decode_compressedDataFormat_response},
+ { 0, NULL, NULL, NULL }
+};
+
+void proto_register_dcerpc_frstransblobs(void)
+{
+ static hf_register_info hf[] = {
+ { &hf_frstransblobs_compressedBlock_Block_Signature,
+ { "Block Signature", "frstransblobs.compressedBlock.Block_Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_frstransblobs_decode_compressedDataFormat_data,
+ { "Data", "frstransblobs.decode_compressedDataFormat.data", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_frstransblobs_compressedDataFormat_block,
+ { "Block", "frstransblobs.compressedDataFormat.block", FT_NONE, BASE_NONE, NULL, 0, NULL, HFILL }},
+ { &hf_frstransblobs_compressedBlock_uncompressed_size,
+ { "Uncompressed Size", "frstransblobs.compressedBlock.uncompressed_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_frstransblobs_compressedBlock_compressed_size,
+ { "Compressed Size", "frstransblobs.compressedBlock.compressed_size", FT_UINT32, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_frstransblobs_compressedDataFormat_Signature,
+ { "Signature", "frstransblobs.compressedDataFormat.Signature", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_frstransblobs_compressedBlock_data,
+ { "Data", "frstransblobs.compressedBlock.data", FT_UINT8, BASE_DEC, NULL, 0, NULL, HFILL }},
+ { &hf_frstransblobs_opnum,
+ { "Operation", "frstransblobs.opnum", FT_UINT16, BASE_DEC, NULL, 0, NULL, HFILL }},
+ };
+
+
+ static gint *ett[] = {
+ &ett_dcerpc_frstransblobs,
+ &ett_frstransblobs_compressedBlock,
+ &ett_frstransblobs_compressedDataFormat,
+ };
+
+ proto_dcerpc_frstransblobs = proto_register_protocol("DFS-R blobs", "FRSTRANSBLOBS", "frstransblobs");
+ proto_register_field_array(proto_dcerpc_frstransblobs, hf, array_length (hf));
+ proto_register_subtree_array(ett, array_length(ett));
+}
+
+void proto_reg_handoff_dcerpc_frstransblobs(void)
+{
+ dcerpc_init_uuid(proto_dcerpc_frstransblobs, ett_dcerpc_frstransblobs,
+ &uuid_dcerpc_frstransblobs, ver_dcerpc_frstransblobs,
+ frstransblobs_dissectors, hf_frstransblobs_opnum);
+}