Permalink
Browse files

When shutting down or rebooting keep trying alternate methods if the …

…first ones fail.

The order is user specified command, Dbus then hard coded halt command. Fixes #9102.
  • Loading branch information...
1 parent a0fc086 commit 4138b324fd7a8c7d9313859e54d4944c55e02519 Paul Harrison committed Feb 13, 2011
Showing with 15 additions and 10 deletions.
  1. +15 −10 mythtv/programs/mythfrontend/exitprompt.cpp
@@ -12,6 +12,7 @@
#include "mythmainwindow.h"
#include "mythscreenstack.h"
#include "mythsystem.h"
+#include "mythverbose.h"
void ExitPrompter::quit()
{
@@ -62,16 +63,18 @@ static bool DBusHalt(void)
void ExitPrompter::halt()
{
-
QString halt_cmd = gCoreContext->GetSetting("HaltCommand","");
+ int ret = -1;
+
if (!halt_cmd.isEmpty()) /* Use user specified command if it exists */
{
- myth_system(halt_cmd);
- } else if (!DBusHalt()) /* If supported, use DBus to shutdown */
- {
- myth_system("sudo /sbin/halt -p");
+ ret = myth_system(halt_cmd);
+ if (ret != 0)
+ VERBOSE(VB_IMPORTANT, "User defined HaltCommand failed, falling back to alternative methods.");
}
+ if (ret != 0 && !DBusHalt()) /* If supported, use DBus to shutdown */
+ myth_system("sudo /sbin/halt -p");
}
static bool DBusReboot(void)
@@ -118,16 +121,18 @@ static bool DBusReboot(void)
void ExitPrompter::reboot()
{
-
QString reboot_cmd = gCoreContext->GetSetting("RebootCommand","");
+ int ret = -1;
+
if (!reboot_cmd.isEmpty()) /* Use user specified command if it exists */
{
- myth_system(reboot_cmd);
- } else if (!DBusReboot()) /* If supported, use DBus to reboot */
- {
- myth_system("sudo /sbin/reboot");
+ ret = myth_system(reboot_cmd);
+ if (ret != 0)
+ VERBOSE(VB_IMPORTANT, "User defined RebootCommand failed, falling back to alternative methods.");
}
+ if (ret != 0 && !DBusReboot()) /* If supported, use DBus to reboot */
+ myth_system("sudo /sbin/reboot");
}
void ExitPrompter::handleExit()

0 comments on commit 4138b32

Please sign in to comment.