Sophie

Sophie

distrib > Fedora > 13 > i386 > media > updates-src > by-pkgid > c2e605cb8e2a4bbe705cc43012a1cdbb > files > 18

util-linux-ng-2.17.2-10.fc13.src.rpm

From ecd55f9647d139784857df994d0f5b965d164547 Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 8 Apr 2010 08:51:00 +0200
Subject: [PATCH 1/2] rtcwake: does miss the "off" option

Reported-by: Piergiorgio Sartor <piergiorgio.sartor@nexgo.de>
Addresses: https://bugzilla.redhat.com/show_bug.cgi?id=580296
Signed-off-by: Karel Zak <kzak@redhat.com>
---
 sys-utils/rtcwake.c |   24 +++++++++++++++++++-----
 1 files changed, 19 insertions(+), 5 deletions(-)

diff --git a/sys-utils/rtcwake.c b/sys-utils/rtcwake.c
index 7b2df26..344fed7 100644
--- a/sys-utils/rtcwake.c
+++ b/sys-utils/rtcwake.c
@@ -468,15 +468,19 @@ int main(int argc, char **argv)
 	fflush(stdout);
 	usleep(10 * 1000);
 
-	if (strcmp(suspend, "no") == 0)
+	if (strcmp(suspend, "no") == 0) {
+		if (verbose)
+			printf(_("suspend mode: no; leaving\n"));
+		close(fd);
 		exit(EXIT_SUCCESS);
-	else if (strcmp(suspend, "on") != 0) {
-		sync();
-		suspend_system(suspend);
+
 	} else if (strcmp(suspend, "off") == 0) {
 		char *arg[4];
 		int i = 0;
 
+		if (verbose)
+			printf(_("suspend mode: off; executing %s\n"),
+						_PATH_SHUTDOWN);
 		arg[i++] = _PATH_SHUTDOWN;
 		arg[i++] = "-P";
 		arg[i++] = "now";
@@ -487,9 +491,13 @@ int main(int argc, char **argv)
 		fprintf(stderr, _("%s: unable to execute %s: %s\n"),
 				progname, _PATH_SHUTDOWN, strerror(errno));
 		rc = EXIT_FAILURE;
-	} else {
+
+	} else if (strcmp(suspend, "on") == 0) {
 		unsigned long data;
 
+		if (verbose)
+			printf(_("suspend mode: on; reading rtc\n"));
+
 		do {
 			t = read(fd, &data, sizeof data);
 			if (t < 0) {
@@ -499,6 +507,12 @@ int main(int argc, char **argv)
 			if (verbose)
 				printf("... %s: %03lx\n", devname, data);
 		} while (!(data & RTC_AF));
+
+	} else {
+		if (verbose)
+			printf(_("suspend mode: %s; suspending system\n"), suspend);
+		sync();
+		suspend_system(suspend);
 	}
 
 	if (ioctl(fd, RTC_AIE_OFF, 0) < 0)
-- 
1.6.6