chiark / gitweb /
build-sys: detect Gentoo
[elogind.git] / hostname-setup.c
index 5f3ee77ac01a61d3ffc94745d5609f967f47ba46..4d7f32d0a79b562432d46619e2df06b6d6ba3ba0 100644 (file)
 
 #define LINE_MAX 4096
 
+#if defined(TARGET_FEDORA)
+#define FILENAME "/etc/sysconfig/network"
+#elif defined(TARGET_SUSE)
+#define FILENAME "/etc/HOSTNAME"
+#elif defined(TARGET_DEBIAN)
+#define FILENAME "/etc/hostname"
+#elif defined(TARGET_ARCH)
+#define FILENAME "/etc/rc.conf"
+#endif
+
 static int read_hostname(char **hn) {
 
-#if defined(TARGET_FEDORA)
+#if defined(TARGET_FEDORA) || defined(TARGET_ARCH)
         int r;
         FILE *f;
 
         assert(hn);
 
-        if (!(f = fopen("/etc/sysconfig/network", "re")))
+        if (!(f = fopen(FILENAME, "re")))
                 return -errno;
 
         for (;;) {
@@ -75,13 +85,13 @@ finish:
         fclose(f);
         return r;
 
-#elif defined(TARGET_SUSE)
+#elif defined(TARGET_SUSE) || defined(TARGET_DEBIAN)
         int r;
         char *s, *k;
 
         assert(hn);
 
-        if ((r = read_one_line_file("/etc/HOSTNAME", &s)) < 0)
+        if ((r = read_one_line_file(FILENAME, &s)) < 0)
                 return r;
 
         k = strdup(strstrip(s));
@@ -92,22 +102,6 @@ finish:
 
         *hn = k;
 
-#elif defined(TARGET_DEBIAN)
-        int r;
-        char *s, *k;
-
-        assert(hn);
-
-        if ((r = read_one_line_file("/etc/hostname", &s)) < 0)
-                return r;
-
-        k = strdup(strstrip(s));
-        free(s);
-
-        if (!k)
-                return -ENOMEM;
-
-        *hn = k;
 #else
 #warning "Don't know how to read the hostname"