summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2008-07-16 12:58:29 +0200
committerStefan Metzmacher <metze@samba.org>2008-07-16 14:42:06 +0200
commita24fb2b537a57c308385de9fe5149e29740d1d1b (patch)
tree6d14a234ba2c9ea591a36292d30db2e8a1dba6c3
parentc6ea7f02217fc28dc30882d3f9d543b805de2d74 (diff)
downloadsamba-a24fb2b537a57c308385de9fe5149e29740d1d1b.tar.gz
samba-a24fb2b537a57c308385de9fe5149e29740d1d1b.tar.bz2
samba-a24fb2b537a57c308385de9fe5149e29740d1d1b.zip
drsuapi: get ctr6 out of xpress compressed level
metze (This used to be commit 4e0708148a121bd41a12abf6122d5d6f3f09667a)
-rw-r--r--source4/dsdb/repl/drepl_out_helpers.c5
-rw-r--r--source4/libnet/libnet_become_dc.c5
-rw-r--r--source4/torture/rpc/dssync.c5
3 files changed, 15 insertions, 0 deletions
diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c
index d79d94fc12..e0c3268f9d 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -316,6 +316,11 @@ static void dreplsrv_op_pull_source_get_changes_recv(struct rpc_request *req)
r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
ctr_level = 6;
ctr6 = r->out.ctr.ctr7.ctr.mszip6.ctr6;
+ } else if (*r->out.level == 7 &&
+ r->out.ctr.ctr7.level == 6 &&
+ r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS) {
+ ctr_level = 6;
+ ctr6 = r->out.ctr.ctr7.ctr.xpress6.ctr6;
} else {
composite_error(c, werror_to_ntstatus(WERR_BAD_NET_RESP));
return;
diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c
index 3a437db440..556a51e8af 100644
--- a/source4/libnet/libnet_become_dc.c
+++ b/source4/libnet/libnet_become_dc.c
@@ -2454,6 +2454,11 @@ static WERROR becomeDC_drsuapi_pull_partition_recv(struct libnet_BecomeDC_state
r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
ctr_level = 6;
ctr6 = r->out.ctr.ctr7.ctr.mszip6.ctr6;
+ } else if (*r->out.level == 7 &&
+ r->out.ctr.ctr7.level == 6 &&
+ r->out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS) {
+ ctr_level = 6;
+ ctr6 = r->out.ctr.ctr7.ctr.xpress6.ctr6;
} else {
return WERR_BAD_NET_RESP;
}
diff --git a/source4/torture/rpc/dssync.c b/source4/torture/rpc/dssync.c
index ec527687c0..9c07e5f532 100644
--- a/source4/torture/rpc/dssync.c
+++ b/source4/torture/rpc/dssync.c
@@ -725,6 +725,11 @@ static bool test_FetchData(struct torture_context *tctx, struct DsSyncTest *ctx)
&& r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_MSZIP) {
out_level = 6;
ctr6 = r.out.ctr.ctr7.ctr.mszip6.ctr6;
+ } else if (ret == true && *r.out.level == 7
+ && r.out.ctr.ctr7.level == 6
+ && r.out.ctr.ctr7.type == DRSUAPI_COMPRESSION_TYPE_XPRESS) {
+ out_level = 6;
+ ctr6 = r.out.ctr.ctr7.ctr.xpress6.ctr6;
}
if (out_level == 6) {