8 struct _flxInterfaceMonitor;
9 typedef struct _flxInterfaceMonitor flxInterfaceMonitor;
11 struct _flxInterfaceAddress;
12 typedef struct _flxInterfaceAddress flxInterfaceAddress;
15 typedef struct _flxInterface flxInterface;
17 struct _flxInterface {
22 flxInterfaceAddress *addresses;
23 flxInterface *next, *prev;
26 struct _flxInterfaceAddress {
31 flxInterface *interface;
32 flxInterfaceAddress *next, *prev;
35 typedef enum { FLX_INTERFACE_NEW, FLX_INTERFACE_REMOVE, FLX_INTERFACE_CHANGE } flxInterfaceChange;
37 flxInterfaceMonitor *flx_interface_monitor_new(GMainContext *c);
38 void flx_interface_monitor_free(flxInterfaceMonitor *m);
40 const flxInterface* flx_interface_monitor_get_interface(flxInterfaceMonitor *m, gint index);
41 const flxInterface* flx_interface_monitor_get_first(flxInterfaceMonitor *m);
43 void flx_interface_monitor_add_interface_callback(
44 flxInterfaceMonitor *m,
45 void (*cb)(flxInterfaceMonitor *m, flxInterfaceChange change, const flxInterface *i, gpointer userdata),
48 void flx_interface_monitor_remove_interface_callback(
49 flxInterfaceMonitor *m,
50 void (*cb)(flxInterfaceMonitor *m, flxInterfaceChange change, const flxInterface *i, gpointer userdata),
53 void flx_interface_monitor_add_address_callback(
54 flxInterfaceMonitor *m,
55 void (*cb)(flxInterfaceMonitor *m, flxInterfaceChange change, const flxInterfaceAddress *a, gpointer userdata),
58 void flx_interface_monitor_remove_address_callback(
59 flxInterfaceMonitor *m,
60 void (*cb)(flxInterfaceMonitor *m, flxInterfaceChange change, const flxInterfaceAddress *a, gpointer userdata),