aboutsummaryrefslogtreecommitdiffstats
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
parent25531c9a70a196c8aa6f3b757896f3a955cfa4a0 (diff)
refine IDL
svn path=/trunk/; revision=13733
-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
-rw-r--r--epan/dissectors/packet-dcerpc-drsuapi.c399
-rw-r--r--epan/dissectors/packet-dcerpc-drsuapi.h2
5 files changed, 417 insertions, 37 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
diff --git a/epan/dissectors/packet-dcerpc-drsuapi.c b/epan/dissectors/packet-dcerpc-drsuapi.c
index 2692800698..54a42452e0 100644
--- a/epan/dissectors/packet-dcerpc-drsuapi.c
+++ b/epan/dissectors/packet-dcerpc-drsuapi.c
@@ -88,6 +88,12 @@ static int hf_drsuapi_DsBindInfo28_site_guid = -1;
static int hf_drsuapi_DsBindInfo28_u1 = -1;
static int hf_drsuapi_DsBindInfo28_repl_epoch = -1;
static int hf_drsuapi_DsUnbind_bind_handle = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1Info_unknown1 = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1Info_unknown2 = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1Info_guid1 = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1Info_byte_array = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1Info_str_len = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1Info_nc_dn = -1;
static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION = -1;
static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_WRITEABLE = -1;
static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PERIODIC = -1;
@@ -112,6 +118,14 @@ static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_
static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_CRITICAL = -1;
static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_FULL_IN_PROGRESS = -1;
static int hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_PREEMPTED = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1_info = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1_guid1 = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1_string1 = -1;
+static int hf_drsuapi_DsReplicaSyncRequest1_options = -1;
+static int hf_drsuapi_DsReplicaSyncRequest_1_req1 = -1;
+static int hf_drsuapi_DsReplicaSync_bind_handle = -1;
+static int hf_drsuapi_DsReplicaSync_level = -1;
+static int hf_drsuapi_DsReplicaSync_req = -1;
static int hf_drsuapi_DsGetNCChangesUsnTriple_usn1 = -1;
static int hf_drsuapi_DsGetNCChangesUsnTriple_usn2 = -1;
static int hf_drsuapi_DsGetNCChangesUsnTriple_usn3 = -1;
@@ -371,7 +385,10 @@ static gint ett_drsuapi = -1;
static gint ett_drsuapi_SupportedExtensions = -1;
static gint ett_drsuapi_DsBindInfo24 = -1;
static gint ett_drsuapi_DsBindInfo28 = -1;
+static gint ett_drsuapi_DsReplicaSyncRequest1Info = -1;
static gint ett_drsuapi_DsReplicaSyncOptions = -1;
+static gint ett_drsuapi_DsReplicaSyncRequest1 = -1;
+static gint ett_drsuapi_DsReplicaSyncRequest = -1;
static gint ett_drsuapi_DsGetNCChangesUsnTriple = -1;
static gint ett_drsuapi_DsReplicaUpdateRefsOptions = -1;
static gint ett_drsuapi_DsReplicaAddOptions = -1;
@@ -428,6 +445,19 @@ static gint ett_drsuapi_DsReplicaInfo = -1;
+static int
+drsuapi_dissect_u_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, 2, hf_index, FALSE, NULL);
+ return offset;
+}
+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;
+}
+
/* INCLUDED FILE : ETH_CODE */
@@ -1026,6 +1056,120 @@ drsuapi_dissect_DsUnbind_response(tvbuff_t *tvb _U_, int offset _U_, packet_info
return offset;
}
+static int
+drsuapi_dissect_DsReplicaSyncRequest1Info_unknown1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1Info_unknown1, param);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1Info_unknown2(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1Info_unknown2, param);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1Info_guid1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1Info_guid1, param);
+ return offset;
+}
+
+
+static int
+drsuapi_dissect_uint8(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+{
+ offset=dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1Info_byte_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_uint8(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1Info_byte_array, param);
+ return offset;
+}
+
+static int
+fixedarray_drsuapi_dissect_DsReplicaSyncRequest1Info_byte_array(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ int count=28;
+ while(count--){
+ offset=drsuapi_dissect_DsReplicaSyncRequest1Info_byte_array(tvb, offset, pinfo, tree, drep);
+ }
+
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1Info_str_len(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_uint32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1Info_str_len, param);
+ return offset;
+}
+
+
+static int
+drsuapi_dissect_uint16(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+{
+ offset=dissect_ndr_uint16(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1Info_nc_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_uint16(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1Info_nc_dn, param);
+ return offset;
+}
+
+static int
+ucarray_drsuapi_dissect_DsReplicaSyncRequest1Info_nc_dn(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ offset=dissect_ndr_ucarray(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaSyncRequest1Info_nc_dn);
+ return offset;
+}
+
+
+int
+drsuapi_dissect_DsReplicaSyncRequest1Info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ int old_offset;
+
+ ALIGN_TO_4_BYTES;
+
+ old_offset=offset;
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaSyncRequest1Info);
+ }
+
+ offset=drsuapi_dissect_DsReplicaSyncRequest1Info_unknown1(tvb, offset, pinfo, tree, drep);
+
+ offset=drsuapi_dissect_DsReplicaSyncRequest1Info_unknown2(tvb, offset, pinfo, tree, drep);
+
+ offset=drsuapi_dissect_DsReplicaSyncRequest1Info_guid1(tvb, offset, pinfo, tree, drep);
+
+ offset=fixedarray_drsuapi_dissect_DsReplicaSyncRequest1Info_byte_array(tvb, offset, pinfo, tree, drep);
+
+ offset=drsuapi_dissect_DsReplicaSyncRequest1Info_str_len(tvb, offset, pinfo, tree, drep);
+
+ offset=ucarray_drsuapi_dissect_DsReplicaSyncRequest1Info_nc_dn(tvb, offset, pinfo, tree, drep);
+
+ proto_item_set_len(item, offset-old_offset);
+
+ return offset;
+}
static const true_false_string DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION_tfs = {
"DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION is SET",
"DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION is NOT set"
@@ -1314,10 +1458,176 @@ drsuapi_dissect_DsReplicaSyncOptions(tvbuff_t *tvb, int offset, packet_info *pin
return offset;
}
+static int
+drsuapi_dissect_DsReplicaSyncRequest1_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_DsReplicaSyncRequest1Info(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1_info, param);
+ return offset;
+}
+
+static int
+ref_drsuapi_dissect_DsReplicaSyncRequest1_info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaSyncRequest1_info, NDR_POINTER_REF, "info", -1);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1_guid1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_GUID(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1_guid1, param);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1_string1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_a_string(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1_string1, param);
+ return offset;
+}
+
+static int
+unique_drsuapi_dissect_DsReplicaSyncRequest1_string1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaSyncRequest1_string1, NDR_POINTER_UNIQUE, "string1", -1);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSyncRequest1_options(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_DsReplicaSyncOptions(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest1_options, param);
+ return offset;
+}
+
+
+int
+drsuapi_dissect_DsReplicaSyncRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ int old_offset;
+
+ ALIGN_TO_4_BYTES;
+
+ old_offset=offset;
+ if(parent_tree){
+ item=proto_tree_add_item(parent_tree, hf_index, tvb, offset, -1, TRUE);
+ tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaSyncRequest1);
+ }
+
+ offset=ref_drsuapi_dissect_DsReplicaSyncRequest1_info(tvb, offset, pinfo, tree, drep);
+
+ offset=drsuapi_dissect_DsReplicaSyncRequest1_guid1(tvb, offset, pinfo, tree, drep);
+
+ offset=unique_drsuapi_dissect_DsReplicaSyncRequest1_string1(tvb, offset, pinfo, tree, drep);
+
+ offset=drsuapi_dissect_DsReplicaSyncRequest1_options(tvb, offset, pinfo, tree, drep);
+
+ proto_item_set_len(item, offset-old_offset);
+
+ return offset;
+}
+
+static int
+drsuapi_dissect_int32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
+{
+ offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL);
+ return offset;
+}
+
+static int
+drsuapi_dissect_union_DsReplicaSyncRequest_1_req1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_DsReplicaSyncRequest1(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSyncRequest_1_req1, param);
+ return offset;
+}
+
+
+static int
+drsuapi_dissect_union_DsReplicaSyncRequest(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *parent_tree, guint8 *drep, int hf_index, guint32 param _U_)
+{
+ proto_item *item=NULL;
+ proto_tree *tree=NULL;
+ int old_offset;
+ guint32 level;
+
+ ALIGN_TO_4_BYTES;
+
+ old_offset=offset;
+ if(parent_tree){
+ item=proto_tree_add_text(parent_tree, tvb, offset, -1, "DsReplicaSyncRequest");
+ tree=proto_item_add_subtree(item, ett_drsuapi_DsReplicaSyncRequest);
+ }
+
+ offset=dissect_ndr_uint32(tvb, offset, pinfo, tree,
+ drep, hf_index, &level);
+
+ switch(level){
+ case 1:
+ ALIGN_TO_4_BYTES;
+ offset=drsuapi_dissect_union_DsReplicaSyncRequest_1_req1(tvb, offset, pinfo, tree, drep);
+ break;
+
+ }
+
+ proto_item_set_len(item, offset-old_offset);
+
+ return offset;
+}
+static int
+drsuapi_dissect_DsReplicaSync_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_policy_handle(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSync_bind_handle, param);
+ return offset;
+}
+
+static int
+ref_drsuapi_dissect_DsReplicaSync_bind_handle(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaSync_bind_handle, NDR_POINTER_REF, "bind_handle", -1);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSync_level(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_int32(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSync_level, param);
+ return offset;
+}
+
+static int
+drsuapi_dissect_DsReplicaSync_req(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ guint32 param=0;
+ offset=drsuapi_dissect_union_DsReplicaSyncRequest(tvb, offset, pinfo, tree, drep, hf_drsuapi_DsReplicaSync_req, param);
+ return offset;
+}
+
+static int
+ref_drsuapi_dissect_DsReplicaSync_req(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
+{
+ offset=dissect_ndr_pointer(tvb, offset, pinfo, tree, drep, drsuapi_dissect_DsReplicaSync_req, NDR_POINTER_REF, "req", -1);
+ return offset;
+}
+
static int
drsuapi_dissect_DsReplicaSync_request(tvbuff_t *tvb _U_, int offset _U_, packet_info *pinfo _U_, proto_tree *tree _U_, guint8 *drep _U_)
{
+ offset=ref_drsuapi_dissect_DsReplicaSync_bind_handle(tvb, offset, pinfo, tree, drep);
+
+ offset=drsuapi_dissect_DsReplicaSync_level(tvb, offset, pinfo, tree, drep);
+
+ offset=ref_drsuapi_dissect_DsReplicaSync_req(tvb, offset, pinfo, tree, drep);
+
return offset;
}
@@ -1961,14 +2271,6 @@ drsuapi_dissect_DsNameRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, pr
return offset;
}
-
-static int
-drsuapi_dissect_int32(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
-{
- offset=dissect_ndr_uint32(tvb, offset, pinfo, tree, drep, hf_index, NULL);
- return offset;
-}
-
static int
drsuapi_dissect_union_DsNameRequest_1_req1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -4679,14 +4981,6 @@ drsuapi_dissect_DsReplicaAttrValMetaData_value_length(tvbuff_t *tvb, int offset,
return offset;
}
-
-static int
-drsuapi_dissect_uint8(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param _U_)
-{
- offset=dissect_ndr_uint8(tvb, offset, pinfo, tree, drep, hf_index, NULL);
- return offset;
-}
-
static int
drsuapi_dissect_DsReplicaAttrValMetaData_value(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep)
{
@@ -6421,6 +6715,36 @@ proto_register_drsuapi(void)
NULL, 0,
"", HFILL }},
+ { &hf_drsuapi_DsReplicaSyncRequest1Info_unknown1,
+ { "unknown1", "drsuapi.DsReplicaSyncRequest1Info.unknown1", FT_UINT32, BASE_DEC,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1Info_unknown2,
+ { "unknown2", "drsuapi.DsReplicaSyncRequest1Info.unknown2", FT_UINT32, BASE_DEC,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1Info_guid1,
+ { "guid1", "drsuapi.DsReplicaSyncRequest1Info.guid1", FT_STRING, BASE_NONE,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1Info_byte_array,
+ { "byte_array", "drsuapi.DsReplicaSyncRequest1Info.byte_array", FT_UINT8, BASE_DEC,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1Info_str_len,
+ { "str_len", "drsuapi.DsReplicaSyncRequest1Info.str_len", FT_UINT32, BASE_DEC,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1Info_nc_dn,
+ { "nc_dn", "drsuapi.DsReplicaSyncRequest1Info.nc_dn", FT_UINT16, BASE_DEC,
+ NULL, 0,
+ "", HFILL }},
+
{ &hf_drsuapi_DsReplicaSyncOptions_DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION,
{ "DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION", "drsuapi.DsReplicaSyncOptions.DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION", FT_BOOLEAN, 32,
TFS(&DRSUAPI_DS_REPLICA_SYNC_ASYNCHRONOUS_OPERATION_tfs), 0x00000001,
@@ -6541,6 +6865,46 @@ proto_register_drsuapi(void)
TFS(&DRSUAPI_DS_REPLICA_SYNC_PREEMPTED_tfs), 0x00800000,
"", HFILL }},
+ { &hf_drsuapi_DsReplicaSyncRequest1_info,
+ { "info", "drsuapi.DsReplicaSyncRequest1.info", FT_NONE, BASE_NONE,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1_guid1,
+ { "guid1", "drsuapi.DsReplicaSyncRequest1.guid1", FT_STRING, BASE_NONE,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1_string1,
+ { "string1", "drsuapi.DsReplicaSyncRequest1.string1", FT_STRING, BASE_NONE,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest1_options,
+ { "options", "drsuapi.DsReplicaSyncRequest1.options", FT_UINT32, BASE_HEX,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSyncRequest_1_req1,
+ { "req1", "drsuapi.DsReplicaSyncRequest.req1", FT_NONE, BASE_NONE,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSync_bind_handle,
+ { "bind_handle", "drsuapi.DsReplicaSync.bind_handle", FT_BYTES, BASE_NONE,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSync_level,
+ { "level", "drsuapi.DsReplicaSync.level", FT_INT32, BASE_DEC,
+ NULL, 0,
+ "", HFILL }},
+
+ { &hf_drsuapi_DsReplicaSync_req,
+ { "req", "drsuapi.DsReplicaSync.req", FT_UINT32, BASE_DEC,
+ NULL, 0,
+ "", HFILL }},
+
{ &hf_drsuapi_DsGetNCChangesUsnTriple_usn1,
{ "usn1", "drsuapi.DsGetNCChangesUsnTriple.usn1", FT_UINT64, BASE_DEC,
NULL, 0,
@@ -7794,7 +8158,10 @@ proto_register_drsuapi(void)
&ett_drsuapi_SupportedExtensions,
&ett_drsuapi_DsBindInfo24,
&ett_drsuapi_DsBindInfo28,
+ &ett_drsuapi_DsReplicaSyncRequest1Info,
&ett_drsuapi_DsReplicaSyncOptions,
+ &ett_drsuapi_DsReplicaSyncRequest1,
+ &ett_drsuapi_DsReplicaSyncRequest,
&ett_drsuapi_DsGetNCChangesUsnTriple,
&ett_drsuapi_DsReplicaUpdateRefsOptions,
&ett_drsuapi_DsReplicaAddOptions,
diff --git a/epan/dissectors/packet-dcerpc-drsuapi.h b/epan/dissectors/packet-dcerpc-drsuapi.h
index 9e9cd1cd7f..205849a13e 100644
--- a/epan/dissectors/packet-dcerpc-drsuapi.h
+++ b/epan/dissectors/packet-dcerpc-drsuapi.h
@@ -35,7 +35,9 @@
int drsuapi_dissect_SupportedExtensions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
int drsuapi_dissect_DsBindInfo24(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
int drsuapi_dissect_DsBindInfo28(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
+int drsuapi_dissect_DsReplicaSyncRequest1Info(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
int drsuapi_dissect_DsReplicaSyncOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
+int drsuapi_dissect_DsReplicaSyncRequest1(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
int drsuapi_dissect_DsGetNCChangesUsnTriple(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
int drsuapi_dissect_DsReplicaUpdateRefsOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);
int drsuapi_dissect_DsReplicaAddOptions(tvbuff_t *tvb, int offset, packet_info *pinfo, proto_tree *tree, guint8 *drep, int hf_index, guint32 param);