mirror of
https://github.com/AuxXxilium/eudev.git
synced 2025-03-10 16:39:30 +07:00
hostname: read hostname for Gentoo
This commit is contained in:
parent
07b0b134d3
commit
3177a7fa12
@ -40,11 +40,13 @@
|
||||
#define FILENAME "/etc/hostname"
|
||||
#elif defined(TARGET_ARCH)
|
||||
#define FILENAME "/etc/rc.conf"
|
||||
#elif defined(TARGET_GENTOO)
|
||||
#define FILENAME "/etc/conf.d/hostname"
|
||||
#endif
|
||||
|
||||
static int read_hostname(char **hn) {
|
||||
|
||||
#if defined(TARGET_FEDORA) || defined(TARGET_ARCH)
|
||||
#if defined(TARGET_FEDORA) || defined(TARGET_ARCH) || defined(TARGET_GENTOO)
|
||||
int r;
|
||||
FILE *f;
|
||||
|
||||
@ -67,7 +69,7 @@ static int read_hostname(char **hn) {
|
||||
|
||||
s = strstrip(line);
|
||||
|
||||
if (!startswith(s, "HOSTNAME="))
|
||||
if (!startswith_no_case(s, "HOSTNAME="))
|
||||
continue;
|
||||
|
||||
if (!(k = strdup(s+9))) {
|
||||
@ -75,6 +77,11 @@ static int read_hostname(char **hn) {
|
||||
goto finish;
|
||||
}
|
||||
|
||||
if (!(k = delete_chars(k, "\"\'"))) {
|
||||
r = -ENOMEM;
|
||||
goto finish;
|
||||
}
|
||||
|
||||
*hn = k;
|
||||
break;
|
||||
}
|
||||
|
25
util.c
25
util.c
@ -42,6 +42,7 @@
|
||||
#include <sys/inotify.h>
|
||||
#include <sys/poll.h>
|
||||
#include <libgen.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "macro.h"
|
||||
#include "util.h"
|
||||
@ -141,6 +142,30 @@ bool startswith(const char *s, const char *prefix) {
|
||||
return memcmp(s, prefix, pl) == 0;
|
||||
}
|
||||
|
||||
bool startswith_no_case(const char *s, const char *prefix) {
|
||||
size_t sl, pl;
|
||||
unsigned i;
|
||||
|
||||
assert(s);
|
||||
assert(prefix);
|
||||
|
||||
sl = strlen(s);
|
||||
pl = strlen(prefix);
|
||||
|
||||
if (pl == 0)
|
||||
return true;
|
||||
|
||||
if (sl < pl)
|
||||
return false;
|
||||
|
||||
for(i = 0; i < pl; ++i) {
|
||||
if (tolower(s[i]) != tolower(prefix[i]))
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
bool first_word(const char *s, const char *word) {
|
||||
size_t sl, wl;
|
||||
|
||||
|
1
util.h
1
util.h
@ -89,6 +89,7 @@ static inline bool is_path_absolute(const char *p) {
|
||||
|
||||
bool endswith(const char *s, const char *postfix);
|
||||
bool startswith(const char *s, const char *prefix);
|
||||
bool startswith_no_case(const char *s, const char *prefix);
|
||||
|
||||
bool first_word(const char *s, const char *word);
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user