struct DsGetinfoBindInfo {
struct dcerpc_pipe *drs_pipe;
+ struct dcerpc_binding_handle *drs_handle;
struct drsuapi_DsBind req;
struct GUID bind_guid;
struct drsuapi_DsBindInfoCtr our_bind_info_ctr;
printf("Failed to connect to server as a BDC: %s\n", nt_errstr(status));
return false;
}
+ b->drs_handle = b->drs_pipe->binding_handle;
- status = dcerpc_drsuapi_DsBind(b->drs_pipe, ctx, &b->req);
+ status = dcerpc_drsuapi_DsBind_r(b->drs_handle, ctx, &b->req);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
{
NTSTATUS status;
struct dcerpc_pipe *p = ctx->admin.drsuapi.drs_pipe;
+ struct dcerpc_binding_handle *b = ctx->admin.drsuapi.drs_handle;
struct drsuapi_DsReplicaGetInfo r;
union drsuapi_DsReplicaGetInfoRequest req;
union drsuapi_DsReplicaInfo info;
r.out.info = &info;
r.out.info_type = &info_type;
- status = dcerpc_drsuapi_DsReplicaGetInfo(p, tctx, &r);
+ status = dcerpc_drsuapi_DsReplicaGetInfo_r(b, tctx, &r);
if (W_ERROR_EQUAL(r.out.result, WERR_INVALID_LEVEL)) {
/* this is a not yet supported level */
/* Unbing admin handle */
r.in.bind_handle = &ctx->admin.drsuapi.bind_handle;
- dcerpc_drsuapi_DsUnbind(ctx->admin.drsuapi.drs_pipe, ctx, &r);
+ dcerpc_drsuapi_DsUnbind_r(ctx->admin.drsuapi.drs_handle, ctx, &r);
talloc_free(ctx);