#include "dns.h"
#include "announce.h"
+#define AVAHI_MAX_MAC_ADDRESS 32
+
struct AvahiInterfaceMonitor {
AvahiServer *server;
AvahiNetlink *netlink;
AvahiInterfaceMonitor *monitor;
gchar *name;
- gint index;
+ AvahiIfIndex index;
guint flags;
guint mtu;
+ guint8 mac_address[AVAHI_MAX_MAC_ADDRESS];
+ guint mac_address_size;
+
+ AvahiEntryGroup *entry_group;
+
AVAHI_LLIST_HEAD(AvahiInterface, interfaces);
};
AvahiInterfaceMonitor *monitor;
AvahiHwInterface *hardware;
- guchar protocol;
+ AvahiProtocol protocol;
gboolean announcing;
AvahiCache *cache;
guchar flags;
guchar scope;
+ guchar prefix_len;
AvahiAddress address;
AvahiEntryGroup *entry_group;
void avahi_interface_monitor_sync(AvahiInterfaceMonitor *m);
-AvahiInterface* avahi_interface_monitor_get_interface(AvahiInterfaceMonitor *m, gint index, guchar protocol);
+AvahiInterface* avahi_interface_monitor_get_interface(AvahiInterfaceMonitor *m, AvahiIfIndex index, AvahiProtocol protocol);
AvahiHwInterface* avahi_interface_monitor_get_hw_interface(AvahiInterfaceMonitor *m, gint index);
void avahi_interface_send_packet(AvahiInterface *i, AvahiDnsPacket *p);
gboolean avahi_interface_relevant(AvahiInterface *i);
gboolean avahi_interface_address_relevant(AvahiInterfaceAddress *a);
-gboolean avahi_interface_match(AvahiInterface *i, gint index, guchar protocol);
+gboolean avahi_interface_match(AvahiInterface *i, AvahiIfIndex index, AvahiProtocol protocol);
typedef void (*AvahiInterfaceMonitorWalkCallback)(AvahiInterfaceMonitor *m, AvahiInterface *i, gpointer userdata);
-void avahi_interface_monitor_walk(AvahiInterfaceMonitor *m, gint index, guchar protocol, AvahiInterfaceMonitorWalkCallback callback, gpointer userdata);
+void avahi_interface_monitor_walk(AvahiInterfaceMonitor *m, AvahiIfIndex index, AvahiProtocol protocol, AvahiInterfaceMonitorWalkCallback callback, gpointer userdata);
void avahi_update_host_rrs(AvahiInterfaceMonitor *m, gboolean remove);
+gboolean avahi_address_is_local(AvahiInterfaceMonitor *m, const AvahiAddress *a);
+
+gboolean avahi_interface_address_on_link(AvahiInterface *i, const AvahiAddress *a);
+
+
#endif