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;
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);
}
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;
+ s->ndr_struct_ptr = NULL;
c->status = dcerpc_drsuapi_DsAddEntry_recv(req);
if (!composite_is_ok(c)) return;
* 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);
}
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;
+ s->ndr_struct_ptr = NULL;
c->status = dcerpc_drsuapi_DsGetNCChanges_recv(req);
if (!composite_is_ok(c)) return;
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;
+ s->ndr_struct_ptr = NULL;
c->status = dcerpc_drsuapi_DsGetNCChanges_recv(req);
if (!composite_is_ok(c)) return;
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;
+ s->ndr_struct_ptr = NULL;
c->status = dcerpc_drsuapi_DsGetNCChanges_recv(req);
if (!composite_is_ok(c)) return;
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);
}
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);
+ s->ndr_struct_ptr = NULL;
c->status = dcerpc_drsuapi_DsReplicaUpdateRefs_recv(req);
if (!composite_is_ok(c)) return;
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);
+ s->ndr_struct_ptr = NULL;
+
c->status = dcerpc_drsuapi_DsReplicaUpdateRefs_recv(req);
if (!composite_is_ok(c)) return;
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);
+ s->ndr_struct_ptr = NULL;
+
c->status = dcerpc_drsuapi_DsReplicaUpdateRefs_recv(req);
if (!composite_is_ok(c)) return;