Author: jmcd Date: 2005-10-11 18:53:13 +0000 (Tue, 11 Oct 2005) New Revision: 10910
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=10910 Log: Give better shutdown messages Modified: trunk/source/include/doserr.h trunk/source/libsmb/doserr.c trunk/source/utils/net_rpc.c Changeset: Modified: trunk/source/include/doserr.h =================================================================== --- trunk/source/include/doserr.h 2005-10-11 18:42:25 UTC (rev 10909) +++ trunk/source/include/doserr.h 2005-10-11 18:53:13 UTC (rev 10910) @@ -196,6 +196,7 @@ #define WERR_REG_FILE_INVALID W_ERROR(1017) #define WERR_NO_SUCH_SERVICE W_ERROR(1060) #define WERR_INVALID_SERVICE_CONTROL W_ERROR(1052) +#define WERR_MACHINE_LOCKED W_ERROR(1271) #define WERR_INVALID_SECURITY_DESCRIPTOR W_ERROR(1338) #define WERR_EVENTLOG_FILE_CORRUPT W_ERROR(1500) #define WERR_SERVER_UNAVAILABLE W_ERROR(1722) Modified: trunk/source/libsmb/doserr.c =================================================================== --- trunk/source/libsmb/doserr.c 2005-10-11 18:42:25 UTC (rev 10909) +++ trunk/source/libsmb/doserr.c 2005-10-11 18:53:13 UTC (rev 10910) @@ -66,6 +66,7 @@ { "WERR_DFS_NO_SUCH_SERVER", WERR_DFS_NO_SUCH_SERVER }, { "WERR_DFS_INTERNAL_ERROR", WERR_DFS_INTERNAL_ERROR }, { "WERR_DFS_CANT_CREATE_JUNCT", WERR_DFS_CANT_CREATE_JUNCT }, + { "WERR_MACHINE_LOCKED", WERR_MACHINE_LOCKED }, { "WERR_INVALID_SECURITY_DESCRIPTOR", WERR_INVALID_SECURITY_DESCRIPTOR }, { "WERR_INVALID_OWNER", WERR_INVALID_OWNER }, { "WERR_SERVER_UNAVAILABLE", WERR_SERVER_UNAVAILABLE }, Modified: trunk/source/utils/net_rpc.c =================================================================== --- trunk/source/utils/net_rpc.c 2005-10-11 18:42:25 UTC (rev 10909) +++ trunk/source/utils/net_rpc.c 2005-10-11 18:53:13 UTC (rev 10910) @@ -4610,9 +4610,9 @@ if (NT_STATUS_IS_OK(result)) { d_printf("\nShutdown of remote machine succeeded\n"); DEBUG(5,("Shutdown of remote machine succeeded\n")); - } else - DEBUG(0,("Shutdown of remote machine failed!\n")); - + } else { + DEBUG(1,("Shutdown of remote machine failed!\n")); + } return result; } @@ -4640,7 +4640,7 @@ int argc, const char **argv) { - NTSTATUS result = NT_STATUS_UNSUCCESSFUL; + WERROR result; const char *msg = "This machine will be shutdown shortly"; uint32 timeout = 20; #if 0 @@ -4676,16 +4676,19 @@ } /* create an entry */ - result = werror_to_ntstatus(rpccli_reg_shutdown(pipe_hnd, mem_ctx, msg, timeout, opt_reboot, opt_force)); + result = rpccli_reg_shutdown(pipe_hnd, mem_ctx, msg, timeout, opt_reboot, opt_force); - if (NT_STATUS_IS_OK(result)) { + if (W_ERROR_IS_OK(result)) { d_printf("\nShutdown of remote machine succeeded\n"); - DEBUG(5,("Shutdown of remote machine succeeded\n")); + } else { + d_printf("\nShutdown of remote machine failed\n"); + if (W_ERROR_EQUAL(result,WERR_MACHINE_LOCKED)) + d_printf("\nMachine locked, use -f switch to force\n"); + else + d_printf("\nresult was: %s\n", dos_errstr(result)); } - else - DEBUG(0,("Shutdown of remote machine failed!\n")); - return result; + return werror_to_ntstatus(result); } /** @@ -4703,13 +4706,14 @@ int rc = run_rpc_command(NULL, PI_SHUTDOWN, 0, rpc_init_shutdown_internals, argc, argv); - if (rc == 0) - return rc; - DEBUG(1, ("initshutdown pipe didn't work, trying winreg pipe\n")); + if (rc) { + DEBUG(1, ("initshutdown pipe failed, trying winreg pipe\n")); + rc = run_rpc_command(NULL, PI_WINREG, 0, + rpc_reg_shutdown_internals, argc, argv); + } - return run_rpc_command(NULL, PI_WINREG, 0, rpc_reg_shutdown_internals, - argc, argv); + return rc; } /***************************************************************************