static AvahiSEntryGroup* add_dns_servers(AvahiServer *s, AvahiSEntryGroup* g, char **l) { char **p; assert(s); assert(l); if (!g) g = avahi_s_entry_group_new(s, NULL, NULL); assert(avahi_s_entry_group_is_empty(g)); for (p = l; *p; p++) { AvahiAddress a; if (!avahi_address_parse(*p, AVAHI_PROTO_UNSPEC, &a)) avahi_log_warn("Failed to parse address '%s', ignoring.", *p); else if (avahi_server_add_dns_server_address(s, g, AVAHI_IF_UNSPEC, AVAHI_PROTO_UNSPEC, 0, NULL, AVAHI_DNS_SERVER_RESOLVE, &a, 53) < 0) { avahi_s_entry_group_free(g); avahi_log_error("Failed to add DNS server address: %s", avahi_strerror(avahi_server_errno(s))); return NULL; } } avahi_s_entry_group_commit(g); return g; }
static void static_host_free(StaticHost *s) { assert(s); AVAHI_LLIST_REMOVE(StaticHost, hosts, hosts, s); avahi_s_entry_group_free (s->group); avahi_free(s->host); avahi_free(s->ip); avahi_free(s); }
ControllerDiscoveryMDNS::~ControllerDiscoveryMDNS() { if ( group ) { avahi_s_entry_group_free( group ); } if ( server ) { avahi_server_free( server ); } avahi_glib_poll_free( poll ); }
void avahi_dbus_entry_group_free(EntryGroupInfo *i) { assert(i); if (i->entry_group) avahi_s_entry_group_free(i->entry_group); dbus_connection_unregister_object_path(server->bus, i->path); avahi_free(i->path); AVAHI_LLIST_REMOVE(EntryGroupInfo, entry_groups, i->client->entry_groups, i); i->client->n_objects--; assert(i->client->n_objects >= 0); avahi_free(i); }
static void static_service_group_free(StaticServiceGroup *g) { assert(g); if (g->entry_group) avahi_s_entry_group_free(g->entry_group); while (g->services) static_service_free(g->services); AVAHI_LLIST_REMOVE(StaticServiceGroup, groups, groups, g); avahi_free(g->filename); avahi_free(g->name); avahi_free(g->chosen_name); avahi_free(g); }