- if (i->protocol == AF_INET)
- avahi_mdns_mcast_join_ipv4(i->hardware->index, m->server->fd_ipv4);
- if (i->protocol == AF_INET6)
- avahi_mdns_mcast_join_ipv6(i->hardware->index, m->server->fd_ipv6);
-
- i->announcing = TRUE;
- avahi_announce_interface(m->server, i);
- avahi_browser_new_interface(m->server, i);
- } else if (!b && i->announcing) {
- avahi_log_debug("Interface %s.%i no longer relevant", i->hardware->name, i->protocol);
-
- if (i->protocol == AF_INET)
- avahi_mdns_mcast_leave_ipv4(i->hardware->index, m->server->fd_ipv4);
- if (i->protocol == AF_INET6)
- avahi_mdns_mcast_leave_ipv6(i->hardware->index, m->server->fd_ipv6);
-
- avahi_goodbye_interface(m->server, i, FALSE);
- avahi_response_scheduler_clear(i->response_scheduler);
- avahi_query_scheduler_clear(i->query_scheduler);
- avahi_probe_scheduler_clear(i->probe_scheduler);
- avahi_cache_flush(i->cache);