#define USE(x, y) do{ (x) = (y); (y) = NULL; } while(0)
int parse_sleep_config(const char *verb, char ***_modes, char ***_states) {
+
_cleanup_strv_free_ char
**suspend_mode = NULL, **suspend_state = NULL,
**hibernate_mode = NULL, **hibernate_state = NULL,
{ "Sleep", "HibernateState", config_parse_strv, 0, &hibernate_state },
{ "Sleep", "HybridSleepMode", config_parse_strv, 0, &hybrid_mode },
{ "Sleep", "HybridSleepState", config_parse_strv, 0, &hybrid_state },
- {}};
+ {}
+ };
- int r;
- FILE _cleanup_fclose_ *f;
-
- f = fopen(PKGSYSCONFDIR "/sleep.conf", "re");
- if (!f)
- log_full(errno == ENOENT ? LOG_DEBUG: LOG_WARNING,
- "Failed to open configuration file " PKGSYSCONFDIR "/sleep.conf: %m");
- else {
- r = config_parse(NULL, PKGSYSCONFDIR "/sleep.conf", f, "Sleep\0",
- config_item_table_lookup, (void*) items, false, false, NULL);
- if (r < 0)
- log_warning("Failed to parse configuration file: %s", strerror(-r));
- }
+ config_parse(NULL, PKGSYSCONFDIR "/sleep.conf", NULL,
+ "Sleep\0",
+ config_item_table_lookup, items, false, false, true, NULL);
if (streq(verb, "suspend")) {
/* empty by default */
assert(size);
assert(used);
- f = fopen("/proc/swaps", "r");
+ f = fopen("/proc/swaps", "re");
if (!f) {
log_full(errno == ENOENT ? LOG_DEBUG : LOG_WARNING,
"Failed to retrieve open /proc/swaps: %m");
static bool enough_memory_for_hibernation(void) {
_cleanup_free_ char *active = NULL;
- unsigned long long act;
- size_t size, used;
+ unsigned long long act = 0;
+ size_t size = 0, used = 0;
int r;
r = hibernation_partition_size(&size, &used);