-
-}
-
-static void check_interface_relevant(AvahiInterfaceMonitor *m, AvahiInterface *i) {
- int b;
-
- assert(m);
- assert(i);
-
- b = avahi_interface_relevant(i);
-
- if (m->list == LIST_DONE && b && !i->announcing) {
- avahi_log_info("New relevant interface %s.%s.", i->hardware->name, avahi_proto_to_string(i->protocol));
-
- if (i->protocol == AVAHI_PROTO_INET)
- avahi_mdns_mcast_join_ipv4(m->server->fd_ipv4, i->hardware->index);
- if (i->protocol == AVAHI_PROTO_INET6)
- avahi_mdns_mcast_join_ipv6(m->server->fd_ipv6, i->hardware->index);
-
- i->announcing = 1;
- avahi_announce_interface(m->server, i);
- avahi_browser_new_interface(m->server, i);
- } else if (!b && i->announcing) {
- avahi_log_info("Interface %s.%s no longer relevant.", i->hardware->name, avahi_proto_to_string(i->protocol));
-
- if (i->protocol == AVAHI_PROTO_INET)
- avahi_mdns_mcast_leave_ipv4(m->server->fd_ipv4, i->hardware->index);
- if (i->protocol == AVAHI_PROTO_INET6)
- avahi_mdns_mcast_leave_ipv6(m->server->fd_ipv6, i->hardware->index);