X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=hostname-setup.c;h=67891a52e62c9d82ef49faa86ad41a45774072d4;hp=eca33a98533b35af7c15c015756954f9b93626c6;hb=d7c114c00030309435fc56c77c8578a25d228ebe;hpb=302e8c4c4c7c776531d33fddae9cc0cac90846c3 diff --git a/hostname-setup.c b/hostname-setup.c index eca33a985..67891a52e 100644 --- a/hostname-setup.c +++ b/hostname-setup.c @@ -75,6 +75,64 @@ finish: fclose(f); return r; +#elif defined(TARGET_ARCH) + int r; + FILE *f; + + assert(hn); + + if (!(f = fopen("/etc/rc.conf", "re"))) + return -errno; + + for (;;) { + char line[LINE_MAX]; + char *s, *k; + + if (!fgets(line, sizeof(line), f)) { + if (feof(f)) + break; + + r = -errno; + goto finish; + } + + s = strstrip(line); + + if (!startswith(s, "HOSTNAME=")) + continue; + + if (!(k = strdup(s+9))) { + r = -ENOMEM; + goto finish; + } + + *hn = k; + break; + } + + r = 0; + +finish: + fclose(f); + return r; + +#elif defined(TARGET_SUSE) + 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; + #elif defined(TARGET_DEBIAN) int r; char *s, *k; @@ -92,7 +150,7 @@ finish: *hn = k; #else -#warn "Don't know how to read the hostname" +#warning "Don't know how to read the hostname" return -ENOENT; #endif