diff options
author | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-03-12 10:55:50 +0000 |
---|---|---|
committer | Ronnie Sahlberg <ronnie_sahlberg@ozemail.com.au> | 2005-03-12 10:55:50 +0000 |
commit | 2ee14eef27bb97221876e1e992b23f3fb41bf7eb (patch) | |
tree | c138c5fd744498508b8f7a99a4df69d50023598a /epan/dissectors/dcerpc | |
parent | 25531c9a70a196c8aa6f3b757896f3a955cfa4a0 (diff) |
refine IDL
svn path=/trunk/; revision=13733
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 | 44 | ||||
-rwxr-xr-x | epan/dissectors/dcerpc/drsuapi/template.c | 7 |
3 files changed, 32 insertions, 21 deletions
diff --git a/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf b/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf index 407eb4e3cc..5501f40ffd 100755 --- a/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf +++ b/epan/dissectors/dcerpc/drsuapi/drsuapi.cnf @@ -1,3 +1,5 @@ # # +#We dont know this type yet +TYPE a_string drsuapi_dissect_a_string FT_STRING BASE_NONE 0 NULL 4 # diff --git a/epan/dissectors/dcerpc/drsuapi/drsuapi.idl b/epan/dissectors/dcerpc/drsuapi/drsuapi.idl index c7d88daed4..074bbe26e6 100644 --- a/epan/dissectors/dcerpc/drsuapi/drsuapi.idl +++ b/epan/dissectors/dcerpc/drsuapi/drsuapi.idl @@ -116,14 +116,16 @@ interface drsuapi /*****************/ /* Function 0x02 */ -# typedef [gensize,flag(NDR_PAHEX)] struct { -# [value(ndr_size_drsuapi_DsReplicaSyncRequest1Info(r, ndr->flags)-4)] uint32 __ndr_size; -# uint32 unknown1; -# GUID guid1; -# uint8 byte_array[28]; -# [flag(STR_SIZE4|STR_CHARLEN|STR_CONFORMANT)] string nc_dn; -# } drsuapi_DsReplicaSyncRequest1Info; -# + typedef struct { + uint32 unknown1; + uint32 unknown2; + GUID guid1; + /* this looks like a SID followed by a uint32 which is zero */ + uint8 byte_array[28]; + uint32 str_len; + [size_is(str_len)] uint16 nc_dn[]; + } drsuapi_DsReplicaSyncRequest1Info; + typedef bitmap { DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = 0x00000001, DRSUAPI_DS_REPLICA_SYNC_WRITEABLE = 0x00000002, @@ -151,21 +153,21 @@ interface drsuapi DRSUAPI_DS_REPLICA_SYNC_PREEMPTED = 0x00800000 } drsuapi_DsReplicaSyncOptions; -# typedef struct { -# drsuapi_DsReplicaSyncRequest1Info *info; -# GUID guid1; -# astring *string1; -# drsuapi_DsReplicaSyncOptions options; -# } drsuapi_DsReplicaSyncRequest1; -# -# typedef [switch_type(int32)] union { -# [case(1)] drsuapi_DsReplicaSyncRequest1 req1; -# } drsuapi_DsReplicaSyncRequest; + typedef struct { + [ref] drsuapi_DsReplicaSyncRequest1Info *info; + GUID guid1; + a_string *string1; + drsuapi_DsReplicaSyncOptions options; + } drsuapi_DsReplicaSyncRequest1; + + typedef [switch_type(int32)] union { + [case(1)] drsuapi_DsReplicaSyncRequest1 req1; + } drsuapi_DsReplicaSyncRequest; WERROR drsuapi_DsReplicaSync( -# [in,ref] policy_handle *bind_handle, -# [in] int32 level, -# [in,switch_is(level)] drsuapi_DsReplicaSyncRequest req + [in,ref] policy_handle *bind_handle, + [in] int32 level, + [in,switch_is(level),ref] drsuapi_DsReplicaSyncRequest *req ); /*****************/ diff --git a/epan/dissectors/dcerpc/drsuapi/template.c b/epan/dissectors/dcerpc/drsuapi/template.c index fd4c1ff7db..5a715da15f 100755 --- a/epan/dissectors/dcerpc/drsuapi/template.c +++ b/epan/dissectors/dcerpc/drsuapi/template.c @@ -45,6 +45,13 @@ ETH_HF ETH_ETT +static int +drsuapi_dissect_a_string(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_) +{ + offset=dissect_ndr_vstring(tvb, offset, pinfo, tree, drep, 1, hf_index, FALSE, NULL); + return offset; +} + ETH_CODE void |