diff options
Diffstat (limited to 'plugins/profinet/packet-dcom-cba.c')
-rw-r--r-- | plugins/profinet/packet-dcom-cba.c | 331 |
1 files changed, 164 insertions, 167 deletions
diff --git a/plugins/profinet/packet-dcom-cba.c b/plugins/profinet/packet-dcom-cba.c index e99014d827..b49602afa1 100644 --- a/plugins/profinet/packet-dcom-cba.c +++ b/plugins/profinet/packet-dcom-cba.c @@ -210,18 +210,18 @@ static const value_string dcom_boolean_vals[] = { static int dissect_ICBABrowse_get_Count_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Count; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_count, &u32Count); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); if (u32HResult) { /* !S_OK */ @@ -238,17 +238,17 @@ dissect_ICBABrowse_get_Count_resp(tvbuff_t *tvb, int offset, static int dissect_ICBABrowse_BrowseItems_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Offset; guint32 u32MaxReturn; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_offset, &u32Offset); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_max_return, &u32MaxReturn); col_append_fstr(pinfo->cinfo, COL_INFO, " Offset=%u MaxReturn=%u", @@ -260,33 +260,33 @@ dissect_ICBABrowse_BrowseItems_rqst(tvbuff_t *tvb, int offset, static int dissect_ICBABrowse_BrowseItems_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Pointer; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_browse_item); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_item); } - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_browse_data_type); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_data_type); } - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_browse_access_right); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_access_right); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", @@ -298,14 +298,14 @@ dissect_ICBABrowse_BrowseItems_resp(tvbuff_t *tvb, int offset, static int dissect_ICBABrowse2_get_Count2_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Selector; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_selector, &u32Selector); col_append_fstr(pinfo->cinfo, COL_INFO, " Selector=%u", @@ -318,20 +318,20 @@ dissect_ICBABrowse2_get_Count2_rqst(tvbuff_t *tvb, int offset, static int dissect_ICBABrowse2_BrowseItems2_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Selector; guint32 u32Offset; guint32 u32MaxReturn; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_selector, &u32Selector); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_offset, &u32Offset); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_max_return, &u32MaxReturn); col_append_fstr(pinfo->cinfo, COL_INFO, " Sel=%u Offset=%u MaxReturn=%u", @@ -343,33 +343,33 @@ dissect_ICBABrowse2_BrowseItems2_rqst(tvbuff_t *tvb, int offset, static int dissect_ICBABrowse2_BrowseItems2_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Pointer; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_browse_item); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_item); } - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_browse_info1); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_info1); } - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_browse_info2); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_browse_info2); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", @@ -381,27 +381,27 @@ dissect_ICBABrowse2_BrowseItems2_resp(tvbuff_t *tvb, int offset, static int dissect_ICBAPersist2_Save2_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Pointer; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_save_ldev_name); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_save_ldev_name); } - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, hf_cba_save_result); + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_save_result); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", @@ -414,7 +414,7 @@ dissect_ICBAPersist2_Save2_resp(tvbuff_t *tvb, int offset, static int dissect_get_BSTR_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep, int hfindex) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep, int hfindex) { gchar szStr[1000]; guint32 u32MaxStr = sizeof(szStr); @@ -422,16 +422,16 @@ dissect_get_BSTR_resp(tvbuff_t *tvb, int offset, guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, di, drep, hfindex, szStr, u32MaxStr); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": \"%s\" -> %s", szStr, @@ -443,18 +443,18 @@ dissect_get_BSTR_resp(tvbuff_t *tvb, int offset, static int dissect_get_ProductionDate_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32HResult; gdouble r8Date; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DATE(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DATE(tvb, offset, pinfo, tree, di, drep, hf_cba_production_date, &r8Date); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": Date: %g -> %s", @@ -467,22 +467,22 @@ dissect_get_ProductionDate_resp(tvbuff_t *tvb, int offset, static int dissect_get_SerialNo_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32HResult; guint32 u32Pointer; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_VARIANT(tvb, offset, pinfo, tree, di, drep, hf_cba_serial_no); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", @@ -494,18 +494,18 @@ dissect_get_SerialNo_resp(tvbuff_t *tvb, int offset, static int dissect_ICBATime_get_Time_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32HResult; gdouble r8Date; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DATE(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DATE(tvb, offset, pinfo, tree, di, drep, hf_cba_time, &r8Date); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": Time: %g -> %s", @@ -518,14 +518,14 @@ dissect_ICBATime_get_Time_resp(tvbuff_t *tvb, int offset, static int dissect_ICBATime_put_Time_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { gdouble r8Date; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DATE(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DATE(tvb, offset, pinfo, tree, di, drep, hf_cba_time, &r8Date); return offset; @@ -534,45 +534,44 @@ dissect_ICBATime_put_Time_rqst(tvbuff_t *tvb, int offset, static int dissect_get_Producer_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { - return dissect_get_BSTR_resp(tvb, offset, pinfo, tree, drep, hf_cba_producer); + return dissect_get_BSTR_resp(tvb, offset, pinfo, tree, di, drep, hf_cba_producer); } static int dissect_get_Product_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { - return dissect_get_BSTR_resp(tvb, offset, pinfo, tree, drep, hf_cba_product); + return dissect_get_BSTR_resp(tvb, offset, pinfo, tree, di, drep, hf_cba_product); } static int dissect_ICBAPhysicalDevice_get_LogicalDevice_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Pointer; gchar szStr[1000]; guint32 u32MaxStr = sizeof(szStr); - dcerpc_info *info = (dcerpc_info *) pinfo->private_data; gchar *call; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, di, drep, hf_cba_name, szStr, u32MaxStr); } if (strlen(szStr) > 0) { call = wmem_strdup(wmem_file_scope(), szStr); - info->call_data->private_data = call; + di->call_data->private_data = call; } col_append_fstr(pinfo->cinfo, COL_INFO, ": \"%s\"", szStr); @@ -583,26 +582,25 @@ dissect_ICBAPhysicalDevice_get_LogicalDevice_rqst(tvbuff_t *tvb, int offset, static int dissect_ICBAPhysicalDevice_get_LogicalDevice_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32HResult; - dcerpc_info *info = (dcerpc_info *) pinfo->private_data; - gchar *ldev_name = (gchar *)info->call_data->private_data; + gchar *ldev_name = (gchar *)di->call_data->private_data; dcom_interface_t *pdev_interf; dcom_interface_t *ldev_interf; cba_pdev_t *pdev; cba_ldev_t *ldev; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep, 0, &ldev_interf); + offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep, 0, &ldev_interf); /* try to read the ldev name from the request */ if (ldev_name != NULL && ldev_interf != NULL) { /* XXX - this is a hack to create a pdev interface */ /* as I currently don't understand the objref process for a root interface! */ - pdev_interf = dcom_interface_new(pinfo, (const guint8 *)pinfo->net_dst.data, &uuid_ICBAPhysicalDevice, 0, 0, &info->call_data->object_uuid); + pdev_interf = dcom_interface_new(pinfo, (const guint8 *)pinfo->net_dst.data, &uuid_ICBAPhysicalDevice, 0, 0, &di->call_data->object_uuid); if (pdev_interf != NULL) { pdev = cba_pdev_add(pinfo, (const guint8 *)pinfo->net_dst.data); cba_pdev_link(pinfo, pdev, pdev_interf); @@ -612,7 +610,7 @@ dissect_ICBAPhysicalDevice_get_LogicalDevice_resp(tvbuff_t *tvb, int offset, } } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", @@ -624,22 +622,22 @@ dissect_ICBAPhysicalDevice_get_LogicalDevice_resp(tvbuff_t *tvb, int offset, static int dissect_ICBAPhysicalDevice2_Type_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint16 u16MultiApp; guint16 u16PROFInetDCOMStack; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_VARIANT_BOOL(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_VARIANT_BOOL(tvb, offset, pinfo, tree, di, drep, hf_cba_multi_app, &u16MultiApp); - offset = dissect_dcom_VARIANT_BOOL(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_VARIANT_BOOL(tvb, offset, pinfo, tree, di, drep, hf_cba_profinet_dcom_stack, &u16PROFInetDCOMStack); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " App=%s Stack=%s -> %s", @@ -653,7 +651,7 @@ dissect_ICBAPhysicalDevice2_Type_resp(tvbuff_t *tvb, int offset, static int dissect_PROFInetRevision_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint16 u16Major; guint16 u16Minor; @@ -662,18 +660,18 @@ dissect_PROFInetRevision_resp(tvbuff_t *tvb, int offset, guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_revision_major, &u16Major); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_revision_minor, &u16Minor); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_revision_service_pack, &u16ServicePack); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_revision_build, &u16Build); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " Revision=%u.%u.%u.%u -> %s", @@ -686,18 +684,18 @@ dissect_PROFInetRevision_resp(tvbuff_t *tvb, int offset, static int dissect_ICBAPhysicalDevice2_get_PDevStamp_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32PDevStamp; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_pdev_stamp, &u32PDevStamp); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " PDevStamp=0x%x -> %s", @@ -710,22 +708,22 @@ dissect_ICBAPhysicalDevice2_get_PDevStamp_resp(tvbuff_t *tvb, int offset, static int dissect_Revision_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint16 u16Major; guint16 u16Minor; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_revision_major, &u16Major); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_revision_minor, &u16Minor); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": %u.%u -> %s", @@ -738,7 +736,7 @@ dissect_Revision_resp(tvbuff_t *tvb, int offset, static int dissect_ICBALogicalDevice_get_Name_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { gchar szStr[1000]; guint32 u32MaxStr = sizeof(szStr); @@ -746,16 +744,16 @@ dissect_ICBALogicalDevice_get_Name_resp(tvbuff_t *tvb, int offset, guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, di, drep, hf_cba_name, szStr, u32MaxStr); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": \"%s\" -> %s", szStr, @@ -767,38 +765,37 @@ dissect_ICBALogicalDevice_get_Name_resp(tvbuff_t *tvb, int offset, static int dissect_RTAuto_get_Name_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { - return dissect_get_BSTR_resp(tvb, offset, pinfo, tree, drep, hf_cba_name); + return dissect_get_BSTR_resp(tvb, offset, pinfo, tree, di, drep, hf_cba_name); } static int dissect_ICBALogicalDevice_get_ACCO_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32HResult; dcom_interface_t *acco_interf; - dcerpc_info *info = (dcerpc_info *) pinfo->private_data; cba_ldev_t *ldev; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep, 0, &acco_interf); + offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep, 0, &acco_interf); if (acco_interf == NULL) { expert_add_info(pinfo, NULL, &ei_cba_acco_interface_pointer_unresolved); } - ldev = cba_ldev_find(pinfo, pinfo->net_src.data, &info->call_data->object_uuid); + ldev = cba_ldev_find(pinfo, pinfo->net_src.data, &di->call_data->object_uuid); /* "crosslink" interface and its object */ if (ldev != NULL && acco_interf != NULL) { cba_ldev_link_acco(pinfo, ldev, acco_interf); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, &u32HResult); + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", val_to_str(u32HResult, dcom_hresult_vals, "Unknown (0x%08x)") ); @@ -809,16 +806,16 @@ dissect_ICBALogicalDevice_get_ACCO_resp(tvbuff_t *tvb, int offset, static int dissect_ICBALogicalDevice_get_RTAuto_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep, 0, NULL); + offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep, 0, NULL); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, &u32HResult); + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", val_to_str(u32HResult, dcom_hresult_vals, "Unknown (0x%08x)") ); @@ -829,19 +826,19 @@ dissect_ICBALogicalDevice_get_RTAuto_resp(tvbuff_t *tvb, int offset, static int dissect_ICBALogicalDevice_Get_RTAuto_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { gchar szStr[1000]; guint32 u32MaxStr = sizeof(szStr); guint32 u32Pointer; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, di, drep, hf_cba_name, szStr, u32MaxStr); } @@ -854,7 +851,7 @@ dissect_ICBALogicalDevice_Get_RTAuto_rqst(tvbuff_t *tvb, int offset, static int dissect_ComponentInfo_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { gchar szStr[1000]; guint32 u32MaxStr = sizeof(szStr); @@ -864,23 +861,23 @@ dissect_ComponentInfo_resp(tvbuff_t *tvb, int offset, guint32 u32Pointer; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, di, drep, hf_cba_component_id, szStr, u32MaxStr); } - offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_dcerpc_pointer(tvb, offset, pinfo, tree, di, drep, &u32Pointer); if (u32Pointer) { - offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_BSTR(tvb, offset, pinfo, tree, di, drep, hf_cba_component_version, szStr2, u32MaxStr2); } - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, &u32HResult); + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": ID=\"%s\" Version=\"%s\" -> %s", szStr, szStr2, @@ -892,7 +889,7 @@ dissect_ComponentInfo_resp(tvbuff_t *tvb, int offset, static void dissect_PBAddressInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, - proto_tree *tree, guint8 *drep, + proto_tree *tree, dcerpc_info *di, guint8 *drep, guint32 u32VarType _U_, guint32 u32ArraySize) { guint8 u8ID; @@ -905,9 +902,9 @@ dissect_PBAddressInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, sub_item = proto_tree_add_item(tree, hf_cba_pbaddress, tvb, offset, 2, ENC_NA); sub_tree = proto_item_add_subtree(sub_item, ett_PBAddress); - offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, drep, + offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, di, drep, hf_cba_pbaddress_system_id, &u8ID); - offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, drep, + offset = dissect_dcom_BYTE(tvb, offset, pinfo, sub_tree, di, drep, hf_cba_pbaddress_address, &u8Addr); u32ArraySize-=2; @@ -920,15 +917,15 @@ dissect_PBAddressInfo(tvbuff_t *tvb, gint offset, packet_info *pinfo, static int dissect_PBAddressInfo_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_SAFEARRAY(tvb, offset, pinfo, tree, drep, 0 /*hfindex _U_ */, dissect_PBAddressInfo); + offset = dissect_dcom_SAFEARRAY(tvb, offset, pinfo, tree, di, drep, 0 /*hfindex _U_ */, dissect_PBAddressInfo); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, &u32HResult); + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, " -> %s", val_to_str(u32HResult, dcom_hresult_vals, "Unknown (0x%08x)") ); @@ -939,13 +936,13 @@ dissect_PBAddressInfo_resp(tvbuff_t *tvb, int offset, static int dissect_Advise_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep, 0, NULL); + offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep, 0, NULL); return offset; } @@ -953,18 +950,18 @@ dissect_Advise_rqst(tvbuff_t *tvb, int offset, static int dissect_Advise_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Cookie; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_cookie, &u32Cookie); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": Cookie=0x%x -> %s", @@ -977,14 +974,14 @@ dissect_Advise_resp(tvbuff_t *tvb, int offset, static int dissect_Unadvise_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Cookie; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_cookie, &u32Cookie); col_append_fstr(pinfo->cinfo, COL_INFO, ": Cookie=0x%x", @@ -996,18 +993,18 @@ dissect_Unadvise_rqst(tvbuff_t *tvb, int offset, static int dissect_ICBAState_get_State_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint16 u16State; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_state, &u16State); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": State=%s -> %s", @@ -1020,18 +1017,18 @@ dissect_ICBAState_get_State_resp(tvbuff_t *tvb, int offset, static int dissect_ICBAStateEvent_OnStateChanged_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint16 u16NewState; guint16 u16OldState; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_new_state, &u16NewState); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_old_state, &u16OldState); col_append_fstr(pinfo->cinfo, COL_INFO, ": NewState=%s OldState=%s", @@ -1044,18 +1041,18 @@ dissect_ICBAStateEvent_OnStateChanged_rqst(tvbuff_t *tvb, int offset, static int dissect_ICBAGroupError_OnGroupErrorChanged_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint16 u16NewGroupError; guint16 u16OldGroupError; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_new_grouperror, &u16NewGroupError); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_old_grouperror, &u16OldGroupError); col_append_fstr(pinfo->cinfo, COL_INFO, ": NewGE=%s OldGE=%s", @@ -1068,20 +1065,20 @@ dissect_ICBAGroupError_OnGroupErrorChanged_rqst(tvbuff_t *tvb, int offset, static int dissect_ICBAPhysicalDevicePCEvent_OnLogicalDeviceAdded_rqst(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint32 u32Cookie; guint32 u32HResult; - offset = dissect_dcom_this(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_this(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_cookie, &u32Cookie); - offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, drep, 0, NULL); + offset = dissect_dcom_PMInterfacePointer(tvb, offset, pinfo, tree, di, drep, 0, NULL); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": Cookie=0x%x %s", @@ -1094,22 +1091,22 @@ dissect_ICBAPhysicalDevicePCEvent_OnLogicalDeviceAdded_rqst(tvbuff_t *tvb, int o static int dissect_ICBAGroupError_GroupError_resp(tvbuff_t *tvb, int offset, - packet_info *pinfo, proto_tree *tree, guint8 *drep) + packet_info *pinfo, proto_tree *tree, dcerpc_info *di, guint8 *drep) { guint16 u16GroupError; guint32 u32Cookie; guint32 u32HResult; - offset = dissect_dcom_that(tvb, offset, pinfo, tree, drep); + offset = dissect_dcom_that(tvb, offset, pinfo, tree, di, drep); - offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_WORD(tvb, offset, pinfo, tree, di, drep, hf_cba_grouperror, &u16GroupError); - offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_DWORD(tvb, offset, pinfo, tree, di, drep, hf_cba_cookie, &u32Cookie); - offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, drep, + offset = dissect_dcom_HRESULT(tvb, offset, pinfo, tree, di, drep, &u32HResult); col_append_fstr(pinfo->cinfo, COL_INFO, ": GroupError=%s Cookie=0x%x -> %s", |