summaryrefslogtreecommitdiffstats
path: root/avahi-core/server.c
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2005-11-08 23:16:16 +0000
committerLennart Poettering <lennart@poettering.net>2005-11-08 23:16:16 +0000
commit55357e3c75438ce83553d1c43d47e53eb7919d74 (patch)
tree08e3d6c954d55dbf5c4969adaee6f6db56664e9d /avahi-core/server.c
parent6ecd227ceadc32ed229246aa61df6361c7b58a95 (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.c19
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);