-typedef struct _interface_callback_info {
- void (*callback)(flxInterfaceMonitor *m, flxInterfaceChange change, const flxInterface *i, gpointer userdata);
- gpointer userdata;
- struct _interface_callback_info *next;
-} interface_callback_info;
-
-typedef struct _address_callback_info {
- void (*callback)(flxInterfaceMonitor *m, flxInterfaceChange change, const flxInterfaceAddress *i, gpointer userdata);
- gpointer userdata;
- struct _address_callback_info *next;
-} address_callback_info;
-
-struct _flxInterfaceMonitor {
- flxNetlink *netlink;
- GHashTable *hash_table;
- interface_callback_info *interface_callbacks;
- address_callback_info *address_callbacks;
- flxInterface *interfaces;
- guint query_addr_seq, query_link_seq;
- enum { LIST_IFACE, LIST_ADDR, LIST_DONE } list;
-};
-
-static void run_interface_callbacks(flxInterfaceMonitor *m, flxInterfaceChange change, const flxInterface *i) {
- interface_callback_info *c;