+ if (!avahi_address_parse(ip, AVAHI_PROTO_UNSPEC, &a)) {
+ avahi_log_error("Static host name %s: failed to parse address %s", host, ip);
+ avahi_free(host);
+ avahi_free(ip);
+ goto fail;
+ }
+
+ avahi_free(ip);
+
+ if ((h = static_host_find(host, &a)))
+ avahi_free(host);
+ else {
+ h = static_host_new();
+ h->host = host;
+ h->address = a;
+
+ avahi_log_info("Loading new static hostname %s.", h->host);
+ }
+
+ h->iteration = current_iteration;
+ }
+
+ for (h = hosts; h; h = next) {
+ next = h->hosts_next;
+
+ if (h->iteration != current_iteration) {
+ avahi_log_info("Static hostname %s vanished, removing.", h->host);
+ static_host_free(h);
+ }