diff options
Diffstat (limited to 'src/hibernate-resume')
-rw-r--r-- | src/hibernate-resume/hibernate-resume-generator.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/src/hibernate-resume/hibernate-resume-generator.c b/src/hibernate-resume/hibernate-resume-generator.c index 8ff44c3bb9..036493a389 100644 --- a/src/hibernate-resume/hibernate-resume-generator.c +++ b/src/hibernate-resume/hibernate-resume-generator.c @@ -15,6 +15,7 @@ static const char *arg_dest = "/tmp"; static char *arg_resume_device = NULL; +static bool arg_noresume = false; static int parse_proc_cmdline_item(const char *key, const char *value, void *data) { @@ -28,8 +29,15 @@ static int parse_proc_cmdline_item(const char *key, const char *value, void *dat if (!s) return log_oom(); - free(arg_resume_device); - arg_resume_device = s; + free_and_replace(arg_resume_device, s); + + } else if (streq(key, "noresume")) { + if (value) { + log_warning("\"noresume\" kernel command line switch specified with an argument, ignoring."); + return 0; + } + + arg_noresume = true; } return 0; @@ -85,6 +93,11 @@ int main(int argc, char *argv[]) { if (r < 0) log_warning_errno(r, "Failed to parse kernel command line, ignoring: %m"); + if (arg_noresume) { + log_notice("Found \"noresume\" on the kernel command line, quitting."); + return EXIT_SUCCESS; + } + r = process_resume(); free(arg_resume_device); |