diff options
Diffstat (limited to 'source/lib/netapi/joindomain.c')
-rw-r--r-- | source/lib/netapi/joindomain.c | 96 |
1 files changed, 28 insertions, 68 deletions
diff --git a/source/lib/netapi/joindomain.c b/source/lib/netapi/joindomain.c index d15e2e733c..66f7cfb13f 100644 --- a/source/lib/netapi/joindomain.c +++ b/source/lib/netapi/joindomain.c @@ -105,10 +105,12 @@ WERROR NetJoinDomain_r(struct libnetapi_ctx *ctx, WERROR werr; unsigned int old_timeout = 0; - werr = libnetapi_open_pipe(ctx, r->in.server, - &ndr_table_wkssvc.syntax_id, - &cli, - &pipe_cli); + werr = libnetapi_open_ipc_connection(ctx, r->in.server, &cli); + if (!W_ERROR_IS_OK(werr)) { + goto done; + } + + werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli); if (!W_ERROR_IS_OK(werr)) { goto done; } @@ -234,10 +236,12 @@ WERROR NetUnjoinDomain_r(struct libnetapi_ctx *ctx, WERROR werr; unsigned int old_timeout = 0; - werr = libnetapi_open_pipe(ctx, r->in.server_name, - &ndr_table_wkssvc.syntax_id, - &cli, - &pipe_cli); + werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli); + if (!W_ERROR_IS_OK(werr)) { + goto done; + } + + werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli); if (!W_ERROR_IS_OK(werr)) { goto done; } @@ -284,10 +288,12 @@ WERROR NetGetJoinInformation_r(struct libnetapi_ctx *ctx, WERROR werr; const char *buffer = NULL; - werr = libnetapi_open_pipe(ctx, r->in.server_name, - &ndr_table_wkssvc.syntax_id, - &cli, - &pipe_cli); + werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli); + if (!W_ERROR_IS_OK(werr)) { + goto done; + } + + werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli); if (!W_ERROR_IS_OK(werr)) { goto done; } @@ -364,7 +370,7 @@ WERROR NetGetJoinableOUs_l(struct libnetapi_ctx *ctx, dc = strip_hostname(info->dc_unc); - ads = ads_init(info->domain_name, info->domain_name, dc); + ads = ads_init(r->in.domain, r->in.domain, dc); if (!ads) { return WERR_GENERAL_FAILURE; } @@ -383,7 +389,7 @@ WERROR NetGetJoinableOUs_l(struct libnetapi_ctx *ctx, ads->auth.password = SMB_STRDUP(ctx->password); } - ads_status = ads_connect_user_creds(ads); + ads_status = ads_connect(ads); if (!ADS_ERR_OK(ads_status)) { ads_destroy(&ads); return WERR_DEFAULT_JOIN_REQUIRED; @@ -416,10 +422,12 @@ WERROR NetGetJoinableOUs_r(struct libnetapi_ctx *ctx, NTSTATUS status; WERROR werr; - werr = libnetapi_open_pipe(ctx, r->in.server_name, - &ndr_table_wkssvc.syntax_id, - &cli, - &pipe_cli); + werr = libnetapi_open_ipc_connection(ctx, r->in.server_name, &cli); + if (!W_ERROR_IS_OK(werr)) { + goto done; + } + + werr = libnetapi_open_pipe(ctx, cli, PI_WKSSVC, &pipe_cli); if (!W_ERROR_IS_OK(werr)) { goto done; } @@ -445,57 +453,9 @@ WERROR NetGetJoinableOUs_r(struct libnetapi_ctx *ctx, } done: - return werr; -} - -/**************************************************************** -****************************************************************/ - -WERROR NetRenameMachineInDomain_r(struct libnetapi_ctx *ctx, - struct NetRenameMachineInDomain *r) -{ - struct cli_state *cli = NULL; - struct rpc_pipe_client *pipe_cli = NULL; - struct wkssvc_PasswordBuffer *encrypted_password = NULL; - NTSTATUS status; - WERROR werr; - - werr = libnetapi_open_pipe(ctx, r->in.server_name, - &ndr_table_wkssvc.syntax_id, - &cli, - &pipe_cli); - if (!W_ERROR_IS_OK(werr)) { - goto done; - } - - if (r->in.password) { - encode_wkssvc_join_password_buffer(ctx, - r->in.password, - &cli->user_session_key, - &encrypted_password); - } - - status = rpccli_wkssvc_NetrRenameMachineInDomain2(pipe_cli, ctx, - r->in.server_name, - r->in.new_machine_name, - r->in.account, - encrypted_password, - r->in.rename_options, - &werr); - if (!NT_STATUS_IS_OK(status)) { - werr = ntstatus_to_werror(status); - goto done; + if (cli) { + cli_shutdown(cli); } - done: return werr; } - -/**************************************************************** -****************************************************************/ - -WERROR NetRenameMachineInDomain_l(struct libnetapi_ctx *ctx, - struct NetRenameMachineInDomain *r) -{ - LIBNETAPI_REDIRECT_TO_LOCALHOST(ctx, r, NetRenameMachineInDomain); -} |