chiark / gitweb /
Prep v229: elogind should honor its Sleep configuration.
[elogind.git] / src / shared / sleep-config.c
index 39b836d0535403c0c598ee8998dd6ecf5627d1c5..e8998d6ff8721572f204c6295b388f4dd1713a24 100644 (file)
@@ -1,5 +1,3 @@
-/*-*- Mode: C; c-basic-offset: 8; indent-tabs-mode: nil -*-*/
-
 /***
   This file is part of systemd.
 
   along with systemd; If not, see <http://www.gnu.org/licenses/>.
 ***/
 
+#include <errno.h>
+#include <stdbool.h>
+#include <stddef.h>
 #include <stdio.h>
+#include <string.h>
+#include <syslog.h>
+#include <unistd.h>
 
 #include "alloc-util.h"
 #include "conf-parser.h"
 #include "fd-util.h"
 #include "fileio.h"
 #include "log.h"
+#include "macro.h"
 #include "parse-util.h"
 #include "sleep-config.h"
 #include "string-util.h"
 #include "strv.h"
-#include "util.h"
 
 #define USE(x, y) do{ (x) = (y); (y) = NULL; } while(0)
 
+#if 0 /// UNNEEDED by elogind
 int parse_sleep_config(const char *verb, char ***_modes, char ***_states) {
-
+#else
+/// really only used in here.
+static int parse_sleep_config(const char *verb, char ***_modes, char ***_states) {
+#endif // 0
         _cleanup_strv_free_ char
                 **suspend_mode = NULL, **suspend_state = NULL,
                 **hibernate_mode = NULL, **hibernate_state = NULL,
@@ -53,10 +61,19 @@ int parse_sleep_config(const char *verb, char ***_modes, char ***_states) {
                 {}
         };
 
+#if 0 /// elogind has its own config file
         config_parse_many(PKGSYSCONFDIR "/sleep.conf",
                           CONF_PATHS_NULSTR("systemd/sleep.conf.d"),
                           "Sleep\0", config_item_table_lookup, items,
                           false, NULL);
+#else
+        const char* logind_conf = getenv("ELOGIND_CONF_FILE");
+        if (!logind_conf)
+                logind_conf = PKGSYSCONFDIR "/logind.conf";
+        config_parse(NULL, logind_conf, NULL, "Sleep\0",
+                     config_item_table_lookup, items, false,
+                     false, true, NULL);
+#endif // 0
 
         if (streq(verb, "suspend")) {
                 /* empty by default */