+static int interface_mdns_mcast_join(AvahiInterface *i, int join) {
+
+ if (i->protocol == AVAHI_PROTO_INET6)
+ return avahi_mdns_mcast_join_ipv6(i->monitor->server->fd_ipv6, i->hardware->index, join);
+ else if (i->protocol == AVAHI_PROTO_INET) {
+
+#ifdef HAVE_STRUCT_IP_MREQN
+ return avahi_mdns_mcast_join_ipv4(i->monitor->server->fd_ipv4, i->hardware->index, join);
+
+#else
+ AvahiInterfaceAddress *ia;
+ int r = 0;
+
+ for (ia = i->addresses; ia; ia = ia->address_next)
+ r |= avahi_mdns_mcast_join_ipv4(i->monitor->server->fd_ipv4, &ia->address, join);
+
+ return r;
+#endif
+ }
+
+ abort();
+}
+
+