X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fsleep%2Fsleep.c;h=415893ba74e907833fd46400a32a3b27296ffa54;hb=3c6d3052d3597100e9d531df03cb15e9988dc94d;hp=ca00eea4ab76f105b357381925a7bb552ee1e7f7;hpb=601185b43da638b1c74153deae01dbd518680889;p=elogind.git diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c index ca00eea4a..415893ba7 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c @@ -48,15 +48,14 @@ static int write_mode(char **modes) { if (k == 0) return 0; - log_debug("Failed to write '%s' to /sys/power/disk: %s", - *mode, strerror(-k)); + log_debug_errno(k, "Failed to write '%s' to /sys/power/disk: %m", + *mode); if (r == 0) r = k; } if (r < 0) - log_error("Failed to write mode to /sys/power/disk: %s", - strerror(-r)); + log_error_errno(r, "Failed to write mode to /sys/power/disk: %m"); return r; } @@ -71,51 +70,49 @@ static int write_state(FILE **f, char **states) { k = write_string_stream(*f, *state); if (k == 0) return 0; - log_debug("Failed to write '%s' to /sys/power/state: %s", - *state, strerror(-k)); + log_debug_errno(k, "Failed to write '%s' to /sys/power/state: %m", + *state); if (r == 0) r = k; fclose(*f); *f = fopen("/sys/power/state", "we"); - if (!*f) { - log_error("Failed to open /sys/power/state: %m"); - return -errno; - } + if (!*f) + return log_error_errno(errno, "Failed to open /sys/power/state: %m"); } return r; } static int execute(char **modes, char **states) { - char* arguments[4]; + + char *arguments[] = { + NULL, + (char*) "pre", + arg_verb, + NULL + }; + int r; _cleanup_fclose_ FILE *f = NULL; - const char* note = strappenda("SLEEP=", arg_verb); /* This file is opened first, so that if we hit an error, * we can abort before modifying any state. */ f = fopen("/sys/power/state", "we"); - if (!f) { - log_error("Failed to open /sys/power/state: %m"); - return -errno; - } + if (!f) + return log_error_errno(errno, "Failed to open /sys/power/state: %m"); /* Configure the hibernation mode */ r = write_mode(modes); if (r < 0) return r; - arguments[0] = NULL; - arguments[1] = (char*) "pre"; - arguments[2] = arg_verb; - arguments[3] = NULL; execute_directory(SYSTEM_SLEEP_PATH, NULL, DEFAULT_TIMEOUT_USEC, arguments); log_struct(LOG_INFO, - MESSAGE_ID(SD_MESSAGE_SLEEP_START), - "MESSAGE=Suspending system...", - note, + LOG_MESSAGE_ID(SD_MESSAGE_SLEEP_START), + LOG_MESSAGE("Suspending system..."), + "SLEEP=%s", arg_verb, NULL); r = write_state(&f, states); @@ -123,9 +120,9 @@ static int execute(char **modes, char **states) { return r; log_struct(LOG_INFO, - MESSAGE_ID(SD_MESSAGE_SLEEP_STOP), - "MESSAGE=System resumed.", - note, + LOG_MESSAGE_ID(SD_MESSAGE_SLEEP_STOP), + LOG_MESSAGE("MESSAGE=System resumed."), + "SLEEP=%s", arg_verb, NULL); arguments[1] = (char*) "post";