chiark / gitweb /
use "Out of memory." consistantly (or with "\n")
[elogind.git] / src / timedate / timedated.c
index 4be7c3a9973d4b671846cf27f1a7c8cca5ca4fbc..3fef9e8844bc09225b3dab162c597d71004737d3 100644 (file)
@@ -31,6 +31,7 @@
 #include "polkit.h"
 #include "def.h"
 #include "hwclock.h"
+#include "conf-files.h"
 
 #define NULL_ADJTIME_UTC "0.0 0 0\n0\nUTC\n"
 #define NULL_ADJTIME_LOCAL "0.0 0 0\n0\nLOCAL\n"
@@ -152,7 +153,7 @@ static void verify_timezone(void) {
 
         p = strappend("/usr/share/zoneinfo/", tz.zone);
         if (!p) {
-                log_error("Out of memory");
+                log_error("Out of memory.");
                 return;
         }
 
@@ -219,7 +220,7 @@ static int write_data_timezone(void) {
 
         p = strappend("/usr/share/zoneinfo/", tz.zone);
         if (!p) {
-                log_error("Out of memory");
+                log_error("Out of memory.");
                 return -ENOMEM;
         }
 
@@ -304,42 +305,56 @@ static int write_data_local_rtc(void) {
 }
 
 static char** get_ntp_services(void) {
-        char **r = NULL;
-        FILE *f;
-
-        f = fopen(SYSTEMD_NTP_UNITS, "re");
-        if (!f)
+        char **r = NULL, **files, **i;
+        int k;
+
+        k = conf_files_list(&files, ".list",
+                            "/etc/systemd/ntp-units.d",
+                            "/run/systemd/ntp-units.d",
+                            "/usr/local/lib/systemd/ntp-units.d",
+                            "/usr/lib/systemd/ntp-units.d",
+                            NULL);
+        if (k < 0)
                 return NULL;
 
-        for (;;) {
-                char line[PATH_MAX], *l, **q;
+        STRV_FOREACH(i, files) {
+                FILE *f;
 
-                if (!fgets(line, sizeof(line), f)) {
+                f = fopen(*i, "re");
+                if (!f)
+                        continue;
 
-                        if (ferror(f))
-                                log_error("Failed to read NTP units file: %m");
+                for (;;) {
+                        char line[PATH_MAX], *l, **q;
 
-                        break;
-                }
+                        if (!fgets(line, sizeof(line), f)) {
 
-                l = strstrip(line);
-                if (l[0] == 0 || l[0] == '#')
-                        continue;
+                                if (ferror(f))
+                                        log_error("Failed to read NTP units file: %m");
 
+                                break;
+                        }
 
-                q = strv_append(r, l);
-                if (!q) {
-                        log_error("Out of memory");
-                        break;
+                        l = strstrip(line);
+                        if (l[0] == 0 || l[0] == '#')
+                                continue;
+
+                        q = strv_append(r, l);
+                        if (!q) {
+                                log_error("Out of memory.");
+                                break;
+                        }
+
+                        strv_free(r);
+                        r = q;
                 }
 
-                strv_free(r);
-                r = q;
+                fclose(f);
         }
 
-        fclose(f);
+        strv_free(files);
 
-        return r;
+        return strv_uniq(r);
 }
 
 static int read_ntp(DBusConnection *bus) {
@@ -364,7 +379,7 @@ static int read_ntp(DBusConnection *bus) {
                                 "org.freedesktop.systemd1.Manager",
                                 "GetUnitFileState");
                 if (!m) {
-                        log_error("Out of memory");
+                        log_error("Out of memory.");
                         r = -ENOMEM;
                         goto finish;
                 }
@@ -928,7 +943,7 @@ static int connect_bus(DBusConnection **_bus) {
 
         if (!dbus_connection_register_object_path(bus, "/org/freedesktop/timedate1", &timedate_vtable, NULL) ||
             !dbus_connection_add_filter(bus, bus_exit_idle_filter, &remain_until, NULL)) {
-                log_error("Not enough memory");
+                log_error("Out of memory.");
                 r = -ENOMEM;
                 goto fail;
         }