aboutsummaryrefslogtreecommitdiffstats
path: root/epan
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2006-04-07 22:03:58 +0000
committerUlf Lamping <ulf.lamping@web.de>2006-04-07 22:03:58 +0000
commit69f822f1779020230582c10f490f79206227dbf6 (patch)
tree7a2ccb3df2c5be7109a43f296d63f799ffc96ae9 /epan
parent9481eac669a24c1f5efad7f65ce080afc45b7c5a (diff)
some of the CBA interfaces are actually derived from IDispatch, dissect the methods accordingly
svn path=/trunk/; revision=17839
Diffstat (limited to 'epan')
-rw-r--r--epan/dissectors/packet-dcom-cba.c73
-rw-r--r--epan/dissectors/packet-dcom-dispatch.c15
-rw-r--r--epan/dissectors/packet-dcom-dispatch.h58
3 files changed, 103 insertions, 43 deletions
diff --git a/epan/dissectors/packet-dcom-cba.c b/epan/dissectors/packet-dcom-cba.c
index fa06339c3e..fc8e89203f 100644
--- a/epan/dissectors/packet-dcom-cba.c
+++ b/epan/dissectors/packet-dcom-cba.c
@@ -35,6 +35,7 @@
#include <epan/packet.h>
#include "packet-dcerpc.h"
#include "packet-dcom.h"
+#include "packet-dcom-dispatch.h"
static int hf_cba_opnum = -1;
@@ -1058,10 +1059,10 @@ static dcerpc_sub_dissector ICBAPhysicalDevice_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "get_Producer", dissect_dcom_simple_rqst, dissect_get_Producer_resp },
{ 8, "get_Product", dissect_dcom_simple_rqst, dissect_get_Product_resp },
@@ -1083,10 +1084,10 @@ static dcerpc_sub_dissector ICBABrowse_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "get_Count", dissect_dcom_simple_rqst, dissect_ICBABrowse_get_Count_resp },
{ 8, "BrowseItems", dissect_ICBABrowse_BrowseItems_rqst, dissect_ICBABrowse_BrowseItems_resp },
@@ -1103,10 +1104,10 @@ static dcerpc_sub_dissector ICBAPersist_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "Save", dissect_dcom_simple_rqst, dissect_dcom_simple_resp },
/* stage 2 */
@@ -1152,10 +1153,10 @@ static dcerpc_sub_dissector ICBALogicalDevice_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "get_Name", dissect_dcom_simple_rqst, dissect_get_Name_resp },
{ 8, "get_Producer", dissect_dcom_simple_rqst, dissect_get_Producer_resp },
@@ -1178,10 +1179,10 @@ static dcerpc_sub_dissector ICBAState_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "get_State", dissect_dcom_simple_rqst, dissect_ICBAState_get_State_resp },
{ 8, "Activate", dissect_dcom_simple_rqst, dissect_dcom_simple_resp },
@@ -1210,10 +1211,10 @@ static dcerpc_sub_dissector ICBATime_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "get_Time", dissect_dcom_simple_rqst, dissect_ICBATime_get_Time_resp },
{ 8, "put_Time", dissect_ICBATime_put_Time_rqst, dissect_dcom_simple_resp },
@@ -1227,10 +1228,10 @@ static dcerpc_sub_dissector ICBAGroupError_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "GroupError", dissect_dcom_simple_rqst, dissect_ICBAGroupError_GroupError_resp },
{ 8, "AdviseGroupError", dissect_Advise_rqst, dissect_Advise_resp },
@@ -1256,10 +1257,10 @@ static dcerpc_sub_dissector ICBARTAuto_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "get_Name", dissect_dcom_simple_rqst, dissect_get_Name_resp },
{ 8, "Revision", dissect_dcom_simple_rqst, dissect_Revision_resp },
@@ -1278,10 +1279,10 @@ static dcerpc_sub_dissector ICBASystemProperties_dissectors[] = {
{ 1, "AddRef", NULL, NULL },
{ 2, "Release", NULL, NULL },
- { 3, "GetTypeInfoCount", NULL, NULL },
- { 4, "GetTypeInfo", NULL, NULL },
- { 5, "GetIDsOfNames", NULL, NULL },
- { 6, "Invoke", NULL, NULL },
+ { 3, "GetTypeInfoCount", dissect_dcom_simple_rqst, dissect_IDispatch_GetTypeInfoCount_resp },
+ { 4, "GetTypeInfo", dissect_IDispatch_GetTypeInfo_rqst, dissect_IDispatch_GetTypeInfo_resp },
+ { 5, "GetIDsOfNames", dissect_IDispatch_GetIDsOfNames_rqst, dissect_IDispatch_GetIDsOfNames_resp },
+ { 6, "Invoke", dissect_IDispatch_Invoke_rqst, dissect_IDispatch_Invoke_resp },
{ 7, "StateCollection", dissect_dcom_simple_rqst, NULL },
{ 8, "StampCollection", dissect_dcom_simple_rqst, NULL },
diff --git a/epan/dissectors/packet-dcom-dispatch.c b/epan/dissectors/packet-dcom-dispatch.c
index d35253a903..95a5f9b36e 100644
--- a/epan/dissectors/packet-dcom-dispatch.c
+++ b/epan/dissectors/packet-dcom-dispatch.c
@@ -33,6 +33,7 @@
#include <epan/packet.h>
#include "packet-dcerpc.h"
#include "packet-dcom.h"
+#include "packet-dcom-dispatch.h"
static int hf_dispatch_opnum = -1;
@@ -90,7 +91,7 @@ static int proto_dispatch = -1;
-static int
+int
dissect_IDispatch_GetTypeInfoCount_resp(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -115,7 +116,7 @@ dissect_IDispatch_GetTypeInfoCount_resp(tvbuff_t *tvb, int offset,
return offset;
}
-static int
+int
dissect_IDispatch_GetTypeInfo_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -133,7 +134,7 @@ dissect_IDispatch_GetTypeInfo_rqst(tvbuff_t *tvb, int offset,
}
-static int
+int
dissect_IDispatch_GetTypeInfo_resp(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -162,7 +163,7 @@ dissect_IDispatch_GetTypeInfo_resp(tvbuff_t *tvb, int offset,
}
-static int
+int
dissect_IDispatch_GetIDsOfNames_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -212,7 +213,7 @@ dissect_IDispatch_GetIDsOfNames_rqst(tvbuff_t *tvb, int offset,
-static int
+int
dissect_IDispatch_GetIDsOfNames_resp(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -250,7 +251,7 @@ dissect_IDispatch_GetIDsOfNames_resp(tvbuff_t *tvb, int offset,
-static int
+int
dissect_IDispatch_Invoke_rqst(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -412,7 +413,7 @@ dissect_IDispatch_Invoke_rqst(tvbuff_t *tvb, int offset,
return u32VariableOffset;
}
-static int
+int
dissect_IDispatch_Invoke_resp(tvbuff_t *tvb, int offset,
packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
diff --git a/epan/dissectors/packet-dcom-dispatch.h b/epan/dissectors/packet-dcom-dispatch.h
new file mode 100644
index 0000000000..65d76379cc
--- /dev/null
+++ b/epan/dissectors/packet-dcom-dispatch.h
@@ -0,0 +1,58 @@
+/* packet-dcom-dispatch.h
+ * Routines for DCOM IDispatch
+ *
+ * $Id: packet-dcom-dispatch.c 17658 2006-03-17 21:41:56Z ulfl $
+ *
+ * Ethereal - Network traffic analyzer
+ * By Gerald Combs <gerald@ethereal.com>
+ * Copyright 1998 Gerald Combs
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+ */
+
+/* see packet-dcom.c for details about DCOM */
+
+#ifndef __PACKET_DCERPC_DCOM_DISPATCH_H
+#define __PACKET_DCERPC_DCOM_DISPATCH_H
+
+extern int
+dissect_IDispatch_GetTypeInfoCount_resp(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, guint8 *drep);
+
+extern int
+dissect_IDispatch_GetTypeInfo_rqst(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, guint8 *drep);
+
+extern int
+dissect_IDispatch_GetTypeInfo_resp(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, guint8 *drep);
+
+extern int
+dissect_IDispatch_GetIDsOfNames_rqst(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, guint8 *drep);
+
+extern int
+dissect_IDispatch_GetIDsOfNames_resp(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, guint8 *drep);
+
+extern int
+dissect_IDispatch_Invoke_rqst(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, guint8 *drep);
+
+extern int
+dissect_IDispatch_Invoke_resp(tvbuff_t *tvb, int offset,
+ packet_info *pinfo, proto_tree *tree, guint8 *drep);
+
+#endif /* __PACKET_DCERPC_DCOM_DISPATCH_H */