d_printf("Failed to connect to server: %s\n", nt_errstr(status));
return false;
}
+ conn->drs_handle = conn->drs_pipe->binding_handle;
ZERO_STRUCT(in_bind_ctr);
in_bind_ctr.length = 48;
req.in.bind_info = &in_bind_ctr;
req.out.bind_handle = &conn->bind_handle;
- status = dcerpc_drsuapi_DsBind(conn->drs_pipe, conn, &req);
+ status = dcerpc_drsuapi_DsBind_r(conn->drs_handle, conn, &req);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
r.out.bind_handle = &bind_handle;
r.in.bind_handle = &conn->bind_handle;
- dcerpc_drsuapi_DsUnbind(conn->drs_pipe, conn, &r);
+ dcerpc_drsuapi_DsUnbind_r(conn->drs_handle, conn, &r);
/* free dcerpc pipe in case we get called more than once */
talloc_free(conn->drs_pipe);
conn->drs_pipe = NULL;
+ conn->drs_handle = NULL;
return true;
}
/* DRSUAPI connection context */
struct dcerpc_binding *binding;
struct dcerpc_pipe *drs_pipe;
+ struct dcerpc_binding_handle *drs_handle;
struct policy_handle bind_handle;
/* length of bind info structure returned by remote DC
req.in.bind_handle = &drs_conn->bind_handle;
req.in.level = 1;
req.in.req = &kcc_req;
- status = dcerpc_drsuapi_DsExecuteKCC(drs_conn->drs_pipe, drs_ctx, &req);
+ status = dcerpc_drsuapi_DsExecuteKCC_r(drs_conn->drs_handle, drs_ctx, &req);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
req.in.req->req1.source_dsa_guid = ntds_guid_src;
/* send DsReplicaSync request */
- status = dcerpc_drsuapi_DsReplicaSync(drs_conn->drs_pipe, drs_ctx, &req);
+ status = dcerpc_drsuapi_DsReplicaSync_r(drs_conn->drs_handle, drs_ctx, &req);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {
r.out.info = _replica_info;
r.out.info_type = &info_type_got;
- status = dcerpc_drsuapi_DsReplicaGetInfo(drs_conn->drs_pipe, drs_ctx, &r);
+ status = dcerpc_drsuapi_DsReplicaGetInfo_r(drs_conn->drs_handle, drs_ctx, &r);
if (!NT_STATUS_IS_OK(status)) {
const char *errstr = nt_errstr(status);
if (NT_STATUS_EQUAL(status, NT_STATUS_NET_WRITE_FAULT)) {