Skip to content
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
Paul Harrison
Paul Harrison committed Feb 13, 2011
1 parent a0fc086 commit 4138b324fd7a8c7d9313859e54d4944c55e02519
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.
You can’t perform that action at this time.