+void interface_shutdown(void)
+{
+ struct interface *iface;
+
+ vlist_for_each_element(&interfaces, iface, node)
+ if (iface->fd.fd > 0 && iface->multicast) {
+ dns_reply_a(iface, 0);
+ service_announce_services(iface, 0);
+ }
+ vlist_for_each_element(&interfaces, iface, node)
+ interface_close(iface);
+}
+
+struct interface*
+interface_get(const char *name, int v6, int multicast)
+{
+ char id_buf[32];
+ snprintf(id_buf, sizeof(id_buf), "%d_%d_%s", multicast, v6, name);
+ struct interface *iface = vlist_find(&interfaces, id_buf, iface, node);
+ return iface;
+}
+