diff options
author | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-03-16 11:29:09 +0000 |
---|---|---|
committer | sahlberg <sahlberg@f5534014-38df-0310-8fa8-9805f1628bb7> | 2005-03-16 11:29:09 +0000 |
commit | 08193302def097423f8f5a3f5134e830cb13d024 (patch) | |
tree | 2656db24aa9a4d9704df1a099cc74c7ebf3552cc /epan/dissectors/dcerpc | |
parent | eba0b148746d60ef89bc4b50ba426a8b1944f249 (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-x | epan/dissectors/dcerpc/drsuapi/drsuapi.cnf | 2 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/drsuapi/drsuapi.idl | 24 | ||||
-rw-r--r-- | epan/dissectors/dcerpc/idl2eth.c | 4 |
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); |