s3-initshutdown: prefer dcerpc_initshutdown_X functions.
authorGünther Deschner <gd@samba.org>
Tue, 11 Jan 2011 15:47:34 +0000 (16:47 +0100)
committerGünther Deschner <gd@samba.org>
Tue, 11 Jan 2011 16:12:04 +0000 (17:12 +0100)
Guenther

source3/lib/netapi/shutdown.c
source3/utils/net_rpc.c

index 78b797b1445ea333fb8adf4beffe892c8ac64a3c..199325b17011f621c8091d948ff5023ba7be24a2 100644 (file)
@@ -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)) {
index 27d839a0178c15cb460293052cc6882b9edf89c8..416c6bba5a91f219740fe0ddd15c89046419ec21 100644 (file)
@@ -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);
 }
 
 /**