[SCM] Samba Shared Repository - branch master updated
Stefan Metzmacher
metze at samba.org
Mon Mar 1 08:12:27 MST 2010
The branch, master has been updated
via 719cecb... s4:RPC-NETLOGON: remove useless rpc callback
via 22b1e0b... s4:RPC-ECHO: don't look at the internals of 'struct rpc_request'
via 56b9700... s4:libnet_become_dc: don't look at the internals of 'struct rpc_request'
via 0547af2... s4:drepl_out_helpers: don't look at the internals of 'struct rpc_request'
via 1955cde... s4:drepl_notify: don't look at the internals of 'struct rpc_request'
via 8ba2128... s4:librpc/rpc: make use of explicit dcerpc_*_recv functions
via c84b4b2... s4:torture/rpc: make use of explicit dcerpc_*_recv functions
via 598cf9f... s4:winbind: make use of explicit dcerpc_*_recv functions
via c4e72ad... s4:dsdb/repl: make use of explicit dcerpc_*_recv functions
via f995e59... s4:libnet: make use of explicit dcerpc_*_recv functions
via 5d33c6d... s4:libnet_become_dc: make use of explicit dcerpc_*_recv functions
via 20980eb... pidl:NDR/Client.pm: generate explicit _recv functions
from 1a64d3c... s4-smbtorture: add stricter SetPrinterDataEx tests to spoolss tests.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master
- Log -----------------------------------------------------------------
commit 719cecba848b3e446ea3bc06f14cf90e9cddab9e
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:02:40 2010 +0100
s4:RPC-NETLOGON: remove useless rpc callback
If we got a failure from one request we bail out early.
metze
commit 22b1e0bf324113db12e40567cc1cb9d645049681
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:01:50 2010 +0100
s4:RPC-ECHO: don't look at the internals of 'struct rpc_request'
metze
commit 56b97000bd7842d3b861656880b68ad333594d71
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:00:42 2010 +0100
s4:libnet_become_dc: don't look at the internals of 'struct rpc_request'
metze
commit 0547af244a46e5647eb7dfc9b4a92924d15ab15d
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 09:46:30 2010 +0100
s4:drepl_out_helpers: don't look at the internals of 'struct rpc_request'
metze
commit 1955cde46c33409da85617dfe058a9a965e4b4f7
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 09:43:21 2010 +0100
s4:drepl_notify: don't look at the internals of 'struct rpc_request'
metze
commit 8ba2128e1e4b242bba582b4c8b419c3dc5cd4016
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:59:14 2010 +0100
s4:librpc/rpc: make use of explicit dcerpc_*_recv functions
metze
commit c84b4b23c8b7f7c32ce0a17b5dfb526dbda66f6a
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:59:14 2010 +0100
s4:torture/rpc: make use of explicit dcerpc_*_recv functions
metze
commit 598cf9f5097aafac95c9e9b420b849ad6090c30e
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:59:14 2010 +0100
s4:winbind: make use of explicit dcerpc_*_recv functions
metze
commit c4e72add67c05ce502e448a49094a3e3006d6384
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:59:14 2010 +0100
s4:dsdb/repl: make use of explicit dcerpc_*_recv functions
metze
commit f995e596bbc0e1b44335b10bf23458ac7328188b
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:59:14 2010 +0100
s4:libnet: make use of explicit dcerpc_*_recv functions
metze
commit 5d33c6d4f9719e36a3ed0f6b54c4365324ff352c
Author: Stefan Metzmacher <metze at samba.org>
Date: Mon Mar 1 13:56:01 2010 +0100
s4:libnet_become_dc: make use of explicit dcerpc_*_recv functions
metze
commit 20980eb7870cf3478d9e8e78fb412c5bd299cca5
Author: Stefan Metzmacher <metze at samba.org>
Date: Sat Feb 27 10:34:04 2010 +0100
pidl:NDR/Client.pm: generate explicit _recv functions
metze
-----------------------------------------------------------------------
Summary of changes:
pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm | 32 +++++++++
source4/dsdb/repl/drepl_notify.c | 12 +++-
source4/dsdb/repl/drepl_out_helpers.c | 21 +++++--
source4/libnet/groupinfo.c | 8 +-
source4/libnet/groupman.c | 8 +-
source4/libnet/libnet_become_dc.c | 108 ++++++++---------------------
source4/libnet/libnet_domain.c | 20 +++---
source4/libnet/libnet_group.c | 5 +-
source4/libnet/libnet_lookup.c | 2 +-
source4/libnet/libnet_rpc.c | 6 +-
source4/libnet/libnet_unbecome_dc.c | 4 +-
source4/libnet/libnet_user.c | 4 +-
source4/libnet/userinfo.c | 8 +-
source4/libnet/userman.c | 16 ++--
source4/librpc/rpc/dcerpc_schannel.c | 4 +-
source4/librpc/rpc/dcerpc_util.c | 2 +-
source4/torture/rpc/echo.c | 24 +++++--
source4/torture/rpc/lsa.c | 2 +-
source4/torture/rpc/netlogon.c | 21 +-----
source4/torture/rpc/samr.c | 2 +-
source4/torture/rpc/schannel.c | 2 +-
source4/winbind/wb_async_helpers.c | 10 ++--
source4/winbind/wb_cmd_getdcname.c | 2 +-
source4/winbind/wb_cmd_list_trustdom.c | 2 +-
source4/winbind/wb_cmd_usersids.c | 2 +-
source4/winbind/wb_connect_lsa.c | 2 +-
source4/winbind/wb_connect_sam.c | 4 +-
source4/winbind/wb_dom_info_trusted.c | 6 +-
source4/winbind/wb_init_domain.c | 4 +-
source4/winbind/wb_sam_logon.c | 2 +-
30 files changed, 170 insertions(+), 175 deletions(-)
Changeset truncated at 500 lines:
diff --git a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
index 9d3ccaf..958f215 100644
--- a/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
+++ b/pidl/lib/Parse/Pidl/Samba4/NDR/Client.pm
@@ -43,6 +43,37 @@ sub ParseFunctionSend($$$)
$res .= "}\n\n";
}
+sub ParseFunctionRecv($$$)
+{
+ my ($interface, $fn, $name) = @_;
+ my $uname = uc $name;
+
+ my $proto = "NTSTATUS dcerpc_$name\_recv(struct rpc_request *rreq)";
+
+ $res_hdr .= "\n$proto;\n";
+
+ $res .= "$proto\n{\n";
+
+ if (has_property($fn, "todo")) {
+ $res .= "\treturn NT_STATUS_NOT_IMPLEMENTED;\n";
+ } else {
+ $res .= "NTSTATUS status;
+ struct dcerpc_pipe *p = rreq->p;
+ struct $name *r = (struct $name *)rreq->ndr.struct_ptr;
+
+ status = dcerpc_ndr_request_recv(rreq);
+
+ if (NT_STATUS_IS_OK(status) && (p->conn->flags & DCERPC_DEBUG_PRINT_OUT)) {
+ NDR_PRINT_OUT_DEBUG($name, r);
+ }
+
+ return status;
+";
+ }
+
+ $res .= "}\n\n";
+}
+
sub ParseFunctionSync($$$)
{
my ($interface, $fn, $name) = @_;
@@ -90,6 +121,7 @@ sub ParseFunction($$)
my ($interface, $fn) = @_;
ParseFunctionSend($interface, $fn, $fn->{NAME});
+ ParseFunctionRecv($interface, $fn, $fn->{NAME});
ParseFunctionSync($interface, $fn, $fn->{NAME});
}
diff --git a/source4/dsdb/repl/drepl_notify.c b/source4/dsdb/repl/drepl_notify.c
index eecb444..c3ca5ed 100644
--- a/source4/dsdb/repl/drepl_notify.c
+++ b/source4/dsdb/repl/drepl_notify.c
@@ -39,6 +39,7 @@
struct dreplsrv_op_notify_state {
struct dreplsrv_notify_operation *op;
+ void *ndr_struct_ptr;
};
static void dreplsrv_op_notify_connect_done(struct tevent_req *subreq);
@@ -122,6 +123,8 @@ static void dreplsrv_op_notify_replica_sync_trigger(struct tevent_req *req)
r->in.req->req1.options |= DRSUAPI_DRS_SYNC_URGENT;
}
+ state->ndr_struct_ptr = r;
+
rreq = dcerpc_drsuapi_DsReplicaSync_send(drsuapi->pipe, r, r);
if (tevent_req_nomem(rreq, req)) {
return;
@@ -133,11 +136,16 @@ static void dreplsrv_op_notify_replica_sync_done(struct rpc_request *rreq)
{
struct tevent_req *req = talloc_get_type(rreq->async.private_data,
struct tevent_req);
- struct drsuapi_DsReplicaSync *r = talloc_get_type(rreq->ndr.struct_ptr,
+ struct dreplsrv_op_notify_state *state =
+ tevent_req_data(req,
+ struct dreplsrv_op_notify_state);
+ struct drsuapi_DsReplicaSync *r = talloc_get_type(state->ndr_struct_ptr,
struct drsuapi_DsReplicaSync);
NTSTATUS status;
- status = dcerpc_ndr_request_recv(rreq);
+ state->ndr_struct_ptr = NULL;
+
+ status = dcerpc_drsuapi_DsReplicaSync_recv(rreq);
if (tevent_req_nterror(req, status)) {
return;
}
diff --git a/source4/dsdb/repl/drepl_out_helpers.c b/source4/dsdb/repl/drepl_out_helpers.c
index 4226170..3436b45 100644
--- a/source4/dsdb/repl/drepl_out_helpers.c
+++ b/source4/dsdb/repl/drepl_out_helpers.c
@@ -138,7 +138,7 @@ static void dreplsrv_out_drsuapi_bind_done(struct rpc_request *rreq)
struct dreplsrv_out_drsuapi_state);
NTSTATUS status;
- status = dcerpc_ndr_request_recv(rreq);
+ status = dcerpc_drsuapi_DsBind_recv(rreq);
if (tevent_req_nterror(req, status)) {
return;
}
@@ -203,6 +203,7 @@ NTSTATUS dreplsrv_out_drsuapi_recv(struct tevent_req *req)
struct dreplsrv_op_pull_source_state {
struct dreplsrv_out_operation *op;
+ void *ndr_struct_ptr;
};
static void dreplsrv_op_pull_source_connect_done(struct tevent_req *subreq);
@@ -322,6 +323,7 @@ static void dreplsrv_op_pull_source_get_changes_trigger(struct tevent_req *req)
NDR_PRINT_IN_DEBUG(drsuapi_DsGetNCChanges, r);
#endif
+ state->ndr_struct_ptr = r;
rreq = dcerpc_drsuapi_DsGetNCChanges_send(drsuapi->pipe, r, r);
if (tevent_req_nomem(rreq, req)) {
return;
@@ -339,14 +341,18 @@ static void dreplsrv_op_pull_source_get_changes_done(struct rpc_request *rreq)
{
struct tevent_req *req = talloc_get_type(rreq->async.private_data,
struct tevent_req);
+ struct dreplsrv_op_pull_source_state *state = tevent_req_data(req,
+ struct dreplsrv_op_pull_source_state);
NTSTATUS status;
- struct drsuapi_DsGetNCChanges *r = talloc_get_type(rreq->ndr.struct_ptr,
+ struct drsuapi_DsGetNCChanges *r = talloc_get_type(state->ndr_struct_ptr,
struct drsuapi_DsGetNCChanges);
uint32_t ctr_level = 0;
struct drsuapi_DsGetNCChangesCtr1 *ctr1 = NULL;
struct drsuapi_DsGetNCChangesCtr6 *ctr6 = NULL;
- status = dcerpc_ndr_request_recv(rreq);
+ state->ndr_struct_ptr = NULL;
+
+ status = dcerpc_drsuapi_DsGetNCChanges_recv(rreq);
if (tevent_req_nterror(req, status)) {
return;
}
@@ -552,6 +558,7 @@ static void dreplsrv_update_refs_trigger(struct tevent_req *req)
r->in.req.req1.options |= DRSUAPI_DRS_WRIT_REP;
}
+ state->ndr_struct_ptr = r;
rreq = dcerpc_drsuapi_DsReplicaUpdateRefs_send(drsuapi->pipe, r, r);
if (tevent_req_nomem(rreq, req)) {
return;
@@ -566,11 +573,15 @@ static void dreplsrv_update_refs_done(struct rpc_request *rreq)
{
struct tevent_req *req = talloc_get_type(rreq->async.private_data,
struct tevent_req);
- struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type(rreq->ndr.struct_ptr,
+ struct dreplsrv_op_pull_source_state *state = tevent_req_data(req,
+ struct dreplsrv_op_pull_source_state);
+ struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type(state->ndr_struct_ptr,
struct drsuapi_DsReplicaUpdateRefs);
NTSTATUS status;
- status = dcerpc_ndr_request_recv(rreq);
+ state->ndr_struct_ptr = NULL;
+
+ status = dcerpc_drsuapi_DsReplicaUpdateRefs_recv(rreq);
if (!NT_STATUS_IS_OK(status)) {
DEBUG(0,("UpdateRefs failed with %s\n",
nt_errstr(status)));
diff --git a/source4/libnet/groupinfo.c b/source4/libnet/groupinfo.c
index 1779c28..4b60d45 100644
--- a/source4/libnet/groupinfo.c
+++ b/source4/libnet/groupinfo.c
@@ -67,7 +67,7 @@ static void continue_groupinfo_lookup(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct groupinfo_state);
/* receive samr_Lookup reply */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_LookupNames_recv(req);
if (!composite_is_ok(c)) return;
/* there could be a problem with name resolving itself */
@@ -126,7 +126,7 @@ static void continue_groupinfo_opengroup(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct groupinfo_state);
/* receive samr_OpenGroup reply */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_OpenGroup_recv(req);
if (!composite_is_ok(c)) return;
if (!NT_STATUS_IS_OK(s->querygroupinfo.out.result)) {
@@ -175,7 +175,7 @@ static void continue_groupinfo_getgroup(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct groupinfo_state);
/* receive samr_QueryGroupInfo reply */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_QueryGroupInfo_recv(req);
if (!composite_is_ok(c)) return;
/* check if querygroup itself went ok */
@@ -223,7 +223,7 @@ static void continue_groupinfo_closegroup(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct groupinfo_state);
/* receive samr_Close reply */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_Close_recv(req);
if (!composite_is_ok(c)) return;
if (!NT_STATUS_IS_OK(s->samrclose.out.result)) {
diff --git a/source4/libnet/groupman.c b/source4/libnet/groupman.c
index 0f54db9..8e84d3c 100644
--- a/source4/libnet/groupman.c
+++ b/source4/libnet/groupman.c
@@ -107,7 +107,7 @@ static void continue_groupadd_created(struct rpc_request *req)
c = talloc_get_type(req->async.private_data, struct composite_context);
s = talloc_get_type(c->private_data, struct groupadd_state);
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_CreateDomainGroup_recv(req);
if (!composite_is_ok(c)) return;
c->status = s->creategroup.out.result;
@@ -196,7 +196,7 @@ static void continue_groupdel_name_found(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct groupdel_state);
/* receive samr_LookupNames result */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_LookupNames_recv(req);
if (!composite_is_ok(c)) return;
c->status = s->lookupname.out.result;
@@ -242,7 +242,7 @@ static void continue_groupdel_group_opened(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct groupdel_state);
/* receive samr_OpenGroup result */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_OpenGroup_recv(req);
if (!composite_is_ok(c)) return;
c->status = s->opengroup.out.result;
@@ -273,7 +273,7 @@ static void continue_groupdel_deleted(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct groupdel_state);
/* receive samr_DeleteGroup result */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_DeleteDomainGroup_recv(req);
if (!composite_is_ok(c)) return;
/* return the actual function call status */
diff --git a/source4/libnet/libnet_become_dc.c b/source4/libnet/libnet_become_dc.c
index 0852373..45a3d04 100644
--- a/source4/libnet/libnet_become_dc.c
+++ b/source4/libnet/libnet_become_dc.c
@@ -710,6 +710,8 @@ struct libnet_BecomeDC_state {
struct policy_handle bind_handle;
} drsuapi1, drsuapi2, drsuapi3;
+ void *ndr_struct_ptr;
+
struct libnet_BecomeDC_Domain domain;
struct libnet_BecomeDC_Forest forest;
struct libnet_BecomeDC_SourceDSA source_dsa;
@@ -1714,19 +1716,9 @@ static void becomeDC_drsuapi1_bind_recv(struct rpc_request *req)
struct composite_context *c = s->creq;
WERROR status;
- bool print = false;
-
- if (req->p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
- print = true;
- }
-
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_drsuapi_DsBind_recv(req);
if (!composite_is_ok(c)) return;
- if (print) {
- NDR_PRINT_OUT_DEBUG(drsuapi_DsBind, &s->drsuapi1.bind_r);
- }
-
status = becomeDC_drsuapi_bind_recv(s, &s->drsuapi1);
if (!W_ERROR_IS_OK(status)) {
composite_error(c, werror_to_ntstatus(status));
@@ -2255,6 +2247,7 @@ static void becomeDC_drsuapi1_add_entry_send(struct libnet_BecomeDC_state *s)
r->out.level_out = talloc(s, int32_t);
r->out.ctr = talloc(s, union drsuapi_DsAddEntryCtr);
+ s->ndr_struct_ptr = r;
req = dcerpc_drsuapi_DsAddEntry_send(s->drsuapi1.pipe, r, r);
composite_continue_rpc(c, req, becomeDC_drsuapi1_add_entry_recv, s);
}
@@ -2267,22 +2260,15 @@ static void becomeDC_drsuapi1_add_entry_recv(struct rpc_request *req)
struct libnet_BecomeDC_state *s = talloc_get_type(req->async.private_data,
struct libnet_BecomeDC_state);
struct composite_context *c = s->creq;
- struct drsuapi_DsAddEntry *r = talloc_get_type(req->ndr.struct_ptr,
+ struct drsuapi_DsAddEntry *r = talloc_get_type_abort(s->ndr_struct_ptr,
struct drsuapi_DsAddEntry);
char *binding_str;
- bool print = false;
- if (req->p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
- print = true;
- }
+ s->ndr_struct_ptr = NULL;
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_drsuapi_DsAddEntry_recv(req);
if (!composite_is_ok(c)) return;
- if (print) {
- NDR_PRINT_OUT_DEBUG(drsuapi_DsAddEntry, r);
- }
-
if (!W_ERROR_IS_OK(r->out.result)) {
composite_error(c, werror_to_ntstatus(r->out.result));
return;
@@ -2402,19 +2388,9 @@ static void becomeDC_drsuapi2_bind_recv(struct rpc_request *req)
char *binding_str;
WERROR status;
- bool print = false;
-
- if (req->p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
- print = true;
- }
-
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_drsuapi_DsBind_recv(req);
if (!composite_is_ok(c)) return;
- if (print) {
- NDR_PRINT_OUT_DEBUG(drsuapi_DsBind, &s->drsuapi2.bind_r);
- }
-
status = becomeDC_drsuapi_bind_recv(s, &s->drsuapi2);
if (!W_ERROR_IS_OK(status)) {
composite_error(c, werror_to_ntstatus(status));
@@ -2512,6 +2488,7 @@ static void becomeDC_drsuapi_pull_partition_send(struct libnet_BecomeDC_state *s
* are needed for it. Or the same KRB5 TGS is needed on both
* connections.
*/
+ s->ndr_struct_ptr = r;
req = dcerpc_drsuapi_DsGetNCChanges_send(drsuapi_p->pipe, r, r);
composite_continue_rpc(c, req, recv_fn, s);
}
@@ -2648,23 +2625,15 @@ static void becomeDC_drsuapi3_pull_schema_recv(struct rpc_request *req)
struct libnet_BecomeDC_state *s = talloc_get_type(req->async.private_data,
struct libnet_BecomeDC_state);
struct composite_context *c = s->creq;
- struct drsuapi_DsGetNCChanges *r = talloc_get_type(req->ndr.struct_ptr,
+ struct drsuapi_DsGetNCChanges *r = talloc_get_type_abort(s->ndr_struct_ptr,
struct drsuapi_DsGetNCChanges);
WERROR status;
- bool print = false;
-
- if (req->p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
- print = true;
- }
+ s->ndr_struct_ptr = NULL;
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_drsuapi_DsGetNCChanges_recv(req);
if (!composite_is_ok(c)) return;
- if (print) {
- NDR_PRINT_OUT_DEBUG(drsuapi_DsGetNCChanges, r);
- }
-
status = becomeDC_drsuapi_pull_partition_recv(s, &s->drsuapi2, &s->drsuapi3, &s->schema_part, r);
if (!W_ERROR_IS_OK(status)) {
composite_error(c, werror_to_ntstatus(status));
@@ -2713,23 +2682,15 @@ static void becomeDC_drsuapi3_pull_config_recv(struct rpc_request *req)
struct libnet_BecomeDC_state *s = talloc_get_type(req->async.private_data,
struct libnet_BecomeDC_state);
struct composite_context *c = s->creq;
- struct drsuapi_DsGetNCChanges *r = talloc_get_type(req->ndr.struct_ptr,
+ struct drsuapi_DsGetNCChanges *r = talloc_get_type_abort(s->ndr_struct_ptr,
struct drsuapi_DsGetNCChanges);
WERROR status;
- bool print = false;
-
- if (req->p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
- print = true;
- }
+ s->ndr_struct_ptr = NULL;
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_drsuapi_DsGetNCChanges_recv(req);
if (!composite_is_ok(c)) return;
- if (print) {
- NDR_PRINT_OUT_DEBUG(drsuapi_DsGetNCChanges, r);
- }
-
status = becomeDC_drsuapi_pull_partition_recv(s, &s->drsuapi2, &s->drsuapi3, &s->config_part, r);
if (!W_ERROR_IS_OK(status)) {
composite_error(c, werror_to_ntstatus(status));
@@ -2784,22 +2745,15 @@ static void becomeDC_drsuapi3_pull_domain_recv(struct rpc_request *req)
struct libnet_BecomeDC_state *s = talloc_get_type(req->async.private_data,
struct libnet_BecomeDC_state);
struct composite_context *c = s->creq;
- struct drsuapi_DsGetNCChanges *r = talloc_get_type(req->ndr.struct_ptr,
+ struct drsuapi_DsGetNCChanges *r = talloc_get_type_abort(s->ndr_struct_ptr,
struct drsuapi_DsGetNCChanges);
WERROR status;
- bool print = false;
- if (req->p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
- print = true;
- }
+ s->ndr_struct_ptr = NULL;
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_drsuapi_DsGetNCChanges_recv(req);
if (!composite_is_ok(c)) return;
- if (print) {
- NDR_PRINT_OUT_DEBUG(drsuapi_DsGetNCChanges, r);
- }
-
status = becomeDC_drsuapi_pull_partition_recv(s, &s->drsuapi2, &s->drsuapi3, &s->domain_part, r);
if (!W_ERROR_IS_OK(status)) {
composite_error(c, werror_to_ntstatus(status));
@@ -2852,6 +2806,7 @@ static void becomeDC_drsuapi_update_refs_send(struct libnet_BecomeDC_state *s,
r->in.req.req1.options |= DRSUAPI_DRS_WRIT_REP;
}
+ s->ndr_struct_ptr = r;
req = dcerpc_drsuapi_DsReplicaUpdateRefs_send(drsuapi->pipe, r, r);
composite_continue_rpc(c, req, recv_fn, s);
}
@@ -2863,21 +2818,14 @@ static void becomeDC_drsuapi2_update_refs_schema_recv(struct rpc_request *req)
struct libnet_BecomeDC_state *s = talloc_get_type(req->async.private_data,
struct libnet_BecomeDC_state);
struct composite_context *c = s->creq;
- struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type(req->ndr.struct_ptr,
+ struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type_abort(s->ndr_struct_ptr,
struct drsuapi_DsReplicaUpdateRefs);
- bool print = false;
- if (req->p->conn->flags & DCERPC_DEBUG_PRINT_OUT) {
- print = true;
- }
+ s->ndr_struct_ptr = NULL;
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_drsuapi_DsReplicaUpdateRefs_recv(req);
if (!composite_is_ok(c)) return;
- if (print) {
- NDR_PRINT_OUT_DEBUG(drsuapi_DsReplicaUpdateRefs, r);
- }
-
if (!W_ERROR_IS_OK(r->out.result)) {
composite_error(c, werror_to_ntstatus(r->out.result));
return;
@@ -2896,10 +2844,12 @@ static void becomeDC_drsuapi2_update_refs_config_recv(struct rpc_request *req)
struct libnet_BecomeDC_state *s = talloc_get_type(req->async.private_data,
struct libnet_BecomeDC_state);
struct composite_context *c = s->creq;
- struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type(req->ndr.struct_ptr,
+ struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type(s->ndr_struct_ptr,
struct drsuapi_DsReplicaUpdateRefs);
- c->status = dcerpc_ndr_request_recv(req);
+ s->ndr_struct_ptr = NULL;
+
+ c->status = dcerpc_drsuapi_DsReplicaUpdateRefs_recv(req);
if (!composite_is_ok(c)) return;
if (!W_ERROR_IS_OK(r->out.result)) {
@@ -2918,10 +2868,12 @@ static void becomeDC_drsuapi2_update_refs_domain_recv(struct rpc_request *req)
struct libnet_BecomeDC_state *s = talloc_get_type(req->async.private_data,
struct libnet_BecomeDC_state);
struct composite_context *c = s->creq;
- struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type(req->ndr.struct_ptr,
+ struct drsuapi_DsReplicaUpdateRefs *r = talloc_get_type(s->ndr_struct_ptr,
struct drsuapi_DsReplicaUpdateRefs);
- c->status = dcerpc_ndr_request_recv(req);
+ s->ndr_struct_ptr = NULL;
+
+ c->status = dcerpc_drsuapi_DsReplicaUpdateRefs_recv(req);
if (!composite_is_ok(c)) return;
if (!W_ERROR_IS_OK(r->out.result)) {
diff --git a/source4/libnet/libnet_domain.c b/source4/libnet/libnet_domain.c
index 43a6a0e..cae8d2c 100644
--- a/source4/libnet/libnet_domain.c
+++ b/source4/libnet/libnet_domain.c
@@ -98,7 +98,7 @@ static void continue_domain_open_close(struct rpc_request *req)
s = talloc_get_type(c->private_data, struct domain_open_samr_state);
/* receive samr_Close reply */
- c->status = dcerpc_ndr_request_recv(req);
+ c->status = dcerpc_samr_Close_recv(req);
if (!composite_is_ok(c)) return;
if (s->monitor_fn) {
@@ -143,7 +143,7 @@ static void continue_domain_open_connect(struct rpc_request *req)
--
Samba Shared Repository
More information about the samba-cvs
mailing list