Emit Network Interface Events (ENIE).
enie utilises RTNETLINK to subscribe to network interface state-change events from the kernel. Events matching the user-specified interface (for example,
wlan0) are printed to
enie to be coupled with other systems.
gcc enie.c -o enie
Events are prefixed by an integer denoting event type and followed by the interface name and any other relevant variables (ie. state or IP address).
0 - UP_CONNECTED 1 - UP_DISCONNECTED 2 - DOWN 3 - IP_ASSIGNED 4 - IP_DELETED
0_wlan0_UP_CONNECTED 1_wlan0_UP_DISCONNECTED 2_wlan0_DOWN 3_wlan0_IP_ASSIGNED_192.168.1.12 4_wlan0_IP_DELETED
I've been thinking about network interface state and the most efficient way to access and share it. This is my attempt at experimentation with a push-based system, as well as a means of gaining deeper understanding of the Linux kernel and subsystems.