summaryrefslogtreecommitdiff
path: root/source4/utils/net/drs/net_drs.c
diff options
context:
space:
mode:
Diffstat (limited to 'source4/utils/net/drs/net_drs.c')
-rw-r--r--source4/utils/net/drs/net_drs.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/source4/utils/net/drs/net_drs.c b/source4/utils/net/drs/net_drs.c
index 0fd4781882..cd2f8dfcab 100644
--- a/source4/utils/net/drs/net_drs.c
+++ b/source4/utils/net/drs/net_drs.c
@@ -90,6 +90,7 @@ static bool net_drs_DsBind(struct net_drs_context *drs_ctx, struct net_drs_conne
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;
@@ -99,7 +100,7 @@ static bool net_drs_DsBind(struct net_drs_context *drs_ctx, struct net_drs_conne
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)) {
@@ -149,11 +150,12 @@ static bool net_drs_DsUnbind(struct net_drs_connection *conn)
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;
}