aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/dcerpc
diff options
context:
space:
mode:
authorsahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2005-03-16 11:29:09 +0000
committersahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7>2005-03-16 11:29:09 +0000
commit08193302def097423f8f5a3f5134e830cb13d024 (patch)
tree2656db24aa9a4d9704df1a099cc74c7ebf3552cc /epan/dissectors/dcerpc
parenteba0b148746d60ef89bc4b50ba426a8b1944f249 (diff)
decode some more of drsuapi
git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@13763 f5534014-38df-0310-8fa8-9805f1628bb7
Diffstat (limited to 'epan/dissectors/dcerpc')
-rwxr-xr-xepan/dissectors/dcerpc/drsuapi/drsuapi.cnf2
-rw-r--r--epan/dissectors/dcerpc/drsuapi/drsuapi.idl24
-rw-r--r--epan/dissectors/dcerpc/idl2eth.c4
3 files changed, 17 insertions, 13 deletions
diff --git a/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf b/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf
index 66f7243a70..41491c3ec1 100755
--- a/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf
+++ b/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf
@@ -7,3 +7,5 @@ TYPE a_string drsuapi_dissect_a_string FT_STRING BASE_NONE 0 NULL 4
NOEMIT drsuapi_dissect_DsReplicaSyncRequest1Info_nc_dn
NOEMIT ucarray_drsuapi_dissect_DsReplicaSyncRequest1Info_nc_dn
#
+UNION_TAG_SIZE DsBindInfo 4
+#
diff --git a/epan/dissectors/dcerpc/drsuapi/drsuapi.idl b/epan/dissectors/dcerpc/drsuapi/drsuapi.idl
index 0a4a7d93fa..5f72c24468 100644
--- a/epan/dissectors/dcerpc/drsuapi/drsuapi.idl
+++ b/epan/dissectors/dcerpc/drsuapi/drsuapi.idl
@@ -71,12 +71,12 @@ interface drsuapi
# typedef struct {
# [flag(NDR_REMAINING)] DATA_BLOB info;
# } drsuapi_DsBindInfoFallBack;
-#
-# typedef [nodiscriminant] union {
-# [case(24)][subcontext(4)] drsuapi_DsBindInfo24 info24;
-# [case(28)][subcontext(4)] drsuapi_DsBindInfo28 info28;
+
+ typedef union {
+ [case(24)] drsuapi_DsBindInfo24 info24;
+ [case(28)] drsuapi_DsBindInfo28 info28;
# [default][subcontext(4)] drsuapi_DsBindInfoFallBack FallBack;
-# } drsuapi_DsBindInfo;
+ } drsuapi_DsBindInfo;
/* the drsuapi_DsBindInfoCtr was this before
* typedef [flag(NDR_PAHEX)] struct {
@@ -88,10 +88,10 @@ interface drsuapi
* so we're doing it here
*/
-# typedef struct {
-# [range(1,10000)] uint32 length;
-# [switch_is(length)] drsuapi_DsBindInfo info;
-# } drsuapi_DsBindInfoCtr;
+ typedef struct {
+ [range(1,10000)] uint32 length;
+ [switch_is(length)] drsuapi_DsBindInfo info;
+ } drsuapi_DsBindInfoCtr;
/* this is a magic guid you need to pass to DsBind to make drsuapi_DsWriteAccountSpn() work
*
@@ -100,9 +100,9 @@ interface drsuapi
# const string DRSUAPI_DS_BIND_GUID = "e24d201a-4fd6-11d1-a3da-0000f875ae0d";
WERROR drsuapi_DsBind(
-# [in] GUID *bind_guid,
-# [in,out] drsuapi_DsBindInfoCtr *bind_info,
-# [out,ref] policy_handle *bind_handle
+ [in] GUID *bind_guid,
+ [in,out] drsuapi_DsBindInfoCtr *bind_info,
+ [out,ref] policy_handle *bind_handle
);
/*****************/
diff --git a/epan/dissectors/dcerpc/idl2eth.c b/epan/dissectors/dcerpc/idl2eth.c
index 679f882fc1..94ebbe7dc4 100644
--- a/epan/dissectors/dcerpc/idl2eth.c
+++ b/epan/dissectors/dcerpc/idl2eth.c
@@ -159,6 +159,8 @@ typedef struct _dissector_param_value_t {
} dissector_param_value_t;
dissector_param_value_t *dissector_param_list=NULL;
+static type_item_t *find_type(char *name);
+
void
register_dissector_param_value(char *name, char *value)
{
@@ -2089,7 +2091,7 @@ void parsetypedefunion(int pass)
FPRINTF(NULL,"\nUNION:%s pass:%d\n-------\n",union_name,pass);
- if(bi->flags&BI_SWITCH_TYPE){
+ if(bi && bi->flags&BI_SWITCH_TYPE){
tag_alignment=bi->union_tag_size;
} else {
tag_alignment=get_union_tag_size(union_name);