summaryrefslogtreecommitdiff
path: root/source4/torture/rpc/dssync.c
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2005-10-14 06:07:23 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 13:39:51 -0500
commit18bd47742880424f4f0621b665c47f2c26617f21 (patch)
treed67ddd6f2e54ab40d2ae9d6f3cb00c077e2b6849 /source4/torture/rpc/dssync.c
parent8dfa59372ff8a9348d1ffc5a8a840f82f05a49d1 (diff)
downloadsamba-18bd47742880424f4f0621b665c47f2c26617f21.tar.gz
samba-18bd47742880424f4f0621b665c47f2c26617f21.tar.bz2
samba-18bd47742880424f4f0621b665c47f2c26617f21.zip
r10986: loop also when we use mszip compression
metze (This used to be commit e32488667c59c30d66528e8fa31c55037f36cd01)
Diffstat (limited to 'source4/torture/rpc/dssync.c')
-rw-r--r--source4/torture/rpc/dssync.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/source4/torture/rpc/dssync.c b/source4/torture/rpc/dssync.c
index 757a2dcc7c..77551998c3 100644
--- a/source4/torture/rpc/dssync.c
+++ b/source4/torture/rpc/dssync.c
@@ -279,6 +279,8 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
const char *partition = NULL;
struct drsuapi_DsGetNCChanges r;
struct drsuapi_DsReplicaObjectIdentifier nc;
+ struct drsuapi_DsGetNCChangesCtr6 *ctr6 = NULL;
+ int32_t out_level = 0;
struct GUID null_guid;
struct dom_sid null_sid;
struct {
@@ -403,15 +405,26 @@ static BOOL test_FetchData(struct DsSyncTest *ctx)
}
if (ret == True && r.out.level == 6) {
+ out_level = 6;
+ ctr6 = &r.out.ctr.ctr6;
+ } else if (ret == True && r.out.level == 7
+ && r.out.ctr.ctr7.level == 6
+ && r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
+ out_level = 6;
+ ctr6 = r.out.ctr.ctr7.ctr.mszip6.ctr6;
+ }
+
+ if (out_level == 6) {
DEBUG(0,("end[%d] tmp_highest_usn: %llu , highest_usn: %llu\n",y,
- r.out.ctr.ctr6.new_highwatermark.tmp_highest_usn,
- r.out.ctr.ctr6.new_highwatermark.highest_usn));
+ ctr6->new_highwatermark.tmp_highest_usn,
+ ctr6->new_highwatermark.highest_usn));
- if (r.out.ctr.ctr6.new_highwatermark.tmp_highest_usn > r.out.ctr.ctr6.new_highwatermark.highest_usn) {
- r.in.req.req8.highwatermark = r.out.ctr.ctr6.new_highwatermark;
+ if (ctr6->new_highwatermark.tmp_highest_usn > ctr6->new_highwatermark.highest_usn) {
+ r.in.req.req8.highwatermark = ctr6->new_highwatermark;
continue;
}
}
+
break;
}
}