summaryrefslogtreecommitdiff
path: root/epan/dissectors/dcerpc/drsuapi
diff options
context:
space:
mode:
authorRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-03-12 10:55:50 +0000
committerRonnie Sahlberg <ronnie_sahlberg@ozemail.com.au>2005-03-12 10:55:50 +0000
commit2ee14eef27bb97221876e1e992b23f3fb41bf7eb (patch)
treec138c5fd744498508b8f7a99a4df69d50023598a /epan/dissectors/dcerpc/drsuapi
parent25531c9a70a196c8aa6f3b757896f3a955cfa4a0 (diff)
downloadwireshark-2ee14eef27bb97221876e1e992b23f3fb41bf7eb.tar.gz
refine IDL
svn path=/trunk/; revision=13733
Diffstat (limited to 'epan/dissectors/dcerpc/drsuapi')
-rwxr-xr-xepan/dissectors/dcerpc/drsuapi/drsuapi.cnf2
-rw-r--r--epan/dissectors/dcerpc/drsuapi/drsuapi.idl44
-rwxr-xr-xepan/dissectors/dcerpc/drsuapi/template.c7
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