diff options
author | Lennart Poettering <lennart@poettering.net> | 2005-11-08 23:16:16 +0000 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2005-11-08 23:16:16 +0000 |
commit | 55357e3c75438ce83553d1c43d47e53eb7919d74 (patch) | |
tree | 08e3d6c954d55dbf5c4969adaee6f6db56664e9d /avahi-core/server.c | |
parent | 6ecd227ceadc32ed229246aa61df6361c7b58a95 (diff) |
* deal with gethostname() failing, use utsname.sysname[] instead in that case
* deal with utsname() failing when creating HINFO records
git-svn-id: file:///home/lennart/svn/public/avahi/trunk@938 941a03a8-eaeb-0310-b9a0-b1bbd8fe43fe
Diffstat (limited to 'avahi-core/server.c')
-rw-r--r-- | avahi-core/server.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/avahi-core/server.c b/avahi-core/server.c index 0cc4d4e..e42692f 100644 --- a/avahi-core/server.c +++ b/avahi-core/server.c @@ -1133,13 +1133,20 @@ static void register_hinfo(AvahiServer *s) { /* Fill in HINFO rr */ if ((r = avahi_record_new_full(s->host_name_fqdn, AVAHI_DNS_CLASS_IN, AVAHI_DNS_TYPE_HINFO, AVAHI_DEFAULT_TTL_HOST_NAME))) { - uname(&utsname); - r->data.hinfo.cpu = avahi_strdup(avahi_strup(utsname.machine)); - r->data.hinfo.os = avahi_strdup(avahi_strup(utsname.sysname)); - if (avahi_server_add(s, s->hinfo_entry_group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, AVAHI_PUBLISH_UNIQUE, r) < 0) { - avahi_log_warn("Failed to add HINFO RR: %s", avahi_strerror(s->error)); - return; + if (uname(&utsname) < 0) + avahi_log_warn("uname() failed: %s\n", avahi_strerror(errno)); + else { + + r->data.hinfo.cpu = avahi_strdup(avahi_strup(utsname.machine)); + r->data.hinfo.os = avahi_strdup(avahi_strup(utsname.sysname)); + + avahi_log_info("Adding HINFO record with values '%s/%s'", r->data.hinfo.cpu, r->data.hinfo.os); + + if (avahi_server_add(s, s->hinfo_entry_group, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, AVAHI_PUBLISH_UNIQUE, r) < 0) { + avahi_log_warn("Failed to add HINFO RR: %s", avahi_strerror(s->error)); + return; + } } avahi_record_unref(r); |