Loading include/sysutils/NetlinkEvent.h +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ public: const static int NlActionChange; const static int NlActionLinkDown; const static int NlActionLinkUp; const static int NlActionIfaceActive; const static int NlActionIfaceIdle; NetlinkEvent(); virtual ~NetlinkEvent(); Loading libsysutils/src/NetlinkEvent.cpp +13 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <sys/socket.h> #include <linux/if.h> #include <linux/netfilter/nfnetlink.h> #include <linux/netfilter/xt_IDLETIMER.h> #include <linux/netfilter_ipv4/ipt_ULOG.h> /* From kernel's net/netfilter/xt_quota2.c */ const int QLOG_NL_EVENT = 112; Loading @@ -38,6 +39,8 @@ const int NetlinkEvent::NlActionRemove = 2; const int NetlinkEvent::NlActionChange = 3; const int NetlinkEvent::NlActionLinkUp = 4; const int NetlinkEvent::NlActionLinkDown = 5; const int NetlinkEvent::NlActionIfaceActive = 6; const int NetlinkEvent::NlActionIfaceIdle = 7; NetlinkEvent::NetlinkEvent() { mAction = NlActionUnknown; Loading Loading @@ -70,7 +73,8 @@ void NetlinkEvent::dump() { } /* * Parse an binary message from a NETLINK_ROUTE netlink socket. * Parse an binary message from a NETLINK_ROUTE netlink socket * and IDLETIMER netlink socket. */ bool NetlinkEvent::parseBinaryNetlinkMessage(char *buffer, int size) { size_t sz = size; Loading Loading @@ -127,6 +131,14 @@ bool NetlinkEvent::parseBinaryNetlinkMessage(char *buffer, int size) { mSubsystem = strdup("qlog"); mAction = NlActionChange; } else if (nh->nlmsg_type == NL_EVENT_TYPE_ACTIVE || nh->nlmsg_type == NL_EVENT_TYPE_INACTIVE) { char *ifacename; ifacename = (char *)NLMSG_DATA(nh); asprintf(&mParams[0], "INTERFACE=%s", ifacename); mSubsystem = strdup("idletimer"); mAction = (nh->nlmsg_type == NL_EVENT_TYPE_ACTIVE) ? NlActionIfaceActive : NlActionIfaceIdle; } else { SLOGD("Unexpected netlink message. type=0x%x\n", nh->nlmsg_type); } Loading Loading
include/sysutils/NetlinkEvent.h +2 −0 Original line number Diff line number Diff line Loading @@ -34,6 +34,8 @@ public: const static int NlActionChange; const static int NlActionLinkDown; const static int NlActionLinkUp; const static int NlActionIfaceActive; const static int NlActionIfaceIdle; NetlinkEvent(); virtual ~NetlinkEvent(); Loading
libsysutils/src/NetlinkEvent.cpp +13 −1 Original line number Diff line number Diff line Loading @@ -25,6 +25,7 @@ #include <sys/socket.h> #include <linux/if.h> #include <linux/netfilter/nfnetlink.h> #include <linux/netfilter/xt_IDLETIMER.h> #include <linux/netfilter_ipv4/ipt_ULOG.h> /* From kernel's net/netfilter/xt_quota2.c */ const int QLOG_NL_EVENT = 112; Loading @@ -38,6 +39,8 @@ const int NetlinkEvent::NlActionRemove = 2; const int NetlinkEvent::NlActionChange = 3; const int NetlinkEvent::NlActionLinkUp = 4; const int NetlinkEvent::NlActionLinkDown = 5; const int NetlinkEvent::NlActionIfaceActive = 6; const int NetlinkEvent::NlActionIfaceIdle = 7; NetlinkEvent::NetlinkEvent() { mAction = NlActionUnknown; Loading Loading @@ -70,7 +73,8 @@ void NetlinkEvent::dump() { } /* * Parse an binary message from a NETLINK_ROUTE netlink socket. * Parse an binary message from a NETLINK_ROUTE netlink socket * and IDLETIMER netlink socket. */ bool NetlinkEvent::parseBinaryNetlinkMessage(char *buffer, int size) { size_t sz = size; Loading Loading @@ -127,6 +131,14 @@ bool NetlinkEvent::parseBinaryNetlinkMessage(char *buffer, int size) { mSubsystem = strdup("qlog"); mAction = NlActionChange; } else if (nh->nlmsg_type == NL_EVENT_TYPE_ACTIVE || nh->nlmsg_type == NL_EVENT_TYPE_INACTIVE) { char *ifacename; ifacename = (char *)NLMSG_DATA(nh); asprintf(&mParams[0], "INTERFACE=%s", ifacename); mSubsystem = strdup("idletimer"); mAction = (nh->nlmsg_type == NL_EVENT_TYPE_ACTIVE) ? NlActionIfaceActive : NlActionIfaceIdle; } else { SLOGD("Unexpected netlink message. type=0x%x\n", nh->nlmsg_type); } Loading