From d1954ce8e7bf80c19366dd8313ab616b583c9fe7 Mon Sep 17 00:00:00 2001 From: Günther Deschner Date: Tue, 11 Jan 2011 16:47:34 +0100 Subject: s3-initshutdown: prefer dcerpc_initshutdown_X functions. Guenther --- source3/lib/netapi/shutdown.c | 12 +++++++++--- source3/utils/net_rpc.c | 32 ++++++++++++++++++++------------ 2 files changed, 29 insertions(+), 15 deletions(-) (limited to 'source3') diff --git a/source3/lib/netapi/shutdown.c b/source3/lib/netapi/shutdown.c index 78b797b144..199325b170 100644 --- a/source3/lib/netapi/shutdown.c +++ b/source3/lib/netapi/shutdown.c @@ -23,7 +23,7 @@ #include "lib/netapi/netapi.h" #include "lib/netapi/netapi_private.h" #include "lib/netapi/libnetapi.h" -#include "../librpc/gen_ndr/cli_initshutdown.h" +#include "../librpc/gen_ndr/ndr_initshutdown_c.h" #include "rpc_client/init_lsa.h" /**************************************************************** @@ -36,6 +36,7 @@ WERROR NetShutdownInit_r(struct libnetapi_ctx *ctx, NTSTATUS status; struct rpc_pipe_client *pipe_cli = NULL; struct lsa_StringLarge message; + struct dcerpc_binding_handle *b; werr = libnetapi_open_pipe(ctx, r->in.server_name, &ndr_table_initshutdown.syntax_id, @@ -44,9 +45,11 @@ WERROR NetShutdownInit_r(struct libnetapi_ctx *ctx, goto done; } + b = pipe_cli->binding_handle; + init_lsa_StringLarge(&message, r->in.message); - status = rpccli_initshutdown_Init(pipe_cli, talloc_tos(), + status = dcerpc_initshutdown_Init(b, talloc_tos(), NULL, &message, r->in.timeout, @@ -80,6 +83,7 @@ WERROR NetShutdownAbort_r(struct libnetapi_ctx *ctx, WERROR werr; NTSTATUS status; struct rpc_pipe_client *pipe_cli = NULL; + struct dcerpc_binding_handle *b; werr = libnetapi_open_pipe(ctx, r->in.server_name, &ndr_table_initshutdown.syntax_id, @@ -88,7 +92,9 @@ WERROR NetShutdownAbort_r(struct libnetapi_ctx *ctx, goto done; } - status = rpccli_initshutdown_Abort(pipe_cli, talloc_tos(), + b = pipe_cli->binding_handle; + + status = dcerpc_initshutdown_Abort(b, talloc_tos(), NULL, &werr); if (!NT_STATUS_IS_OK(status)) { diff --git a/source3/utils/net_rpc.c b/source3/utils/net_rpc.c index 27d839a017..416c6bba5a 100644 --- a/source3/utils/net_rpc.c +++ b/source3/utils/net_rpc.c @@ -31,7 +31,7 @@ #include "../librpc/gen_ndr/cli_netlogon.h" #include "../librpc/gen_ndr/cli_srvsvc.h" #include "../librpc/gen_ndr/cli_spoolss.h" -#include "../librpc/gen_ndr/cli_initshutdown.h" +#include "../librpc/gen_ndr/ndr_initshutdown_c.h" #include "../librpc/gen_ndr/cli_winreg.h" #include "secrets.h" #include "lib/netapi/netapi.h" @@ -5073,17 +5073,21 @@ static NTSTATUS rpc_shutdown_abort_internals(struct net_context *c, int argc, const char **argv) { - NTSTATUS result = NT_STATUS_UNSUCCESSFUL; - - result = rpccli_initshutdown_Abort(pipe_hnd, mem_ctx, NULL, NULL); + NTSTATUS status = NT_STATUS_UNSUCCESSFUL; + WERROR result; + struct dcerpc_binding_handle *b = pipe_hnd->binding_handle; - if (NT_STATUS_IS_OK(result)) { + status = dcerpc_initshutdown_Abort(b, mem_ctx, NULL, &result); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + if (W_ERROR_IS_OK(result)) { d_printf(_("\nShutdown successfully aborted\n")); DEBUG(5,("cmd_shutdown_abort: query succeeded\n")); } else DEBUG(5,("cmd_shutdown_abort: query failed\n")); - return result; + return werror_to_ntstatus(result); } /** @@ -5188,10 +5192,12 @@ NTSTATUS rpc_init_shutdown_internals(struct net_context *c, int argc, const char **argv) { - NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + NTSTATUS status = NT_STATUS_UNSUCCESSFUL; + WERROR result; const char *msg = N_("This machine will be shutdown shortly"); uint32 timeout = 20; struct lsa_StringLarge msg_string; + struct dcerpc_binding_handle *b = pipe_hnd->binding_handle; if (c->opt_comment) { msg = c->opt_comment; @@ -5203,17 +5209,19 @@ NTSTATUS rpc_init_shutdown_internals(struct net_context *c, msg_string.string = msg; /* create an entry */ - result = rpccli_initshutdown_Init(pipe_hnd, mem_ctx, NULL, + status = dcerpc_initshutdown_Init(b, mem_ctx, NULL, &msg_string, timeout, c->opt_force, c->opt_reboot, - NULL); - - if (NT_STATUS_IS_OK(result)) { + &result); + if (!NT_STATUS_IS_OK(status)) { + return status; + } + if (W_ERROR_IS_OK(result)) { d_printf(_("\nShutdown of remote machine succeeded\n")); DEBUG(5,("Shutdown of remote machine succeeded\n")); } else { DEBUG(1,("Shutdown of remote machine failed!\n")); } - return result; + return werror_to_ntstatus(result); } /** -- cgit