libsysutils: Fix some bugs in NetlinkListener and NetlinkEvent
Signed-off-by: San Mehat <san@android.com>
diff --git a/include/sysutils/NetlinkListener.h b/include/sysutils/NetlinkListener.h
index 6dcc005..2880046 100644
--- a/include/sysutils/NetlinkListener.h
+++ b/include/sysutils/NetlinkListener.h
@@ -26,7 +26,9 @@
public:
NetlinkListener(int socket);
virtual ~NetlinkListener() {}
+
protected:
virtual bool onDataAvailable(SocketClient *cli);
+ virtual void onEvent(NetlinkEvent *evt) = 0;
};
#endif
diff --git a/libsysutils/src/NetlinkEvent.cpp b/libsysutils/src/NetlinkEvent.cpp
index 5573c3f..5f959a7 100644
--- a/libsysutils/src/NetlinkEvent.cpp
+++ b/libsysutils/src/NetlinkEvent.cpp
@@ -28,6 +28,9 @@
NetlinkEvent::NetlinkEvent() {
mAction = NlActionUnknown;
+ memset(mParams, 0, sizeof(mParams));
+ mPath = NULL;
+ mSubsystem = NULL;
}
NetlinkEvent::~NetlinkEvent() {
diff --git a/libsysutils/src/NetlinkListener.cpp b/libsysutils/src/NetlinkListener.cpp
index 3ec9d9d..5586dcc 100644
--- a/libsysutils/src/NetlinkListener.cpp
+++ b/libsysutils/src/NetlinkListener.cpp
@@ -32,8 +32,6 @@
bool NetlinkListener::onDataAvailable(SocketClient *cli)
{
int socket = cli->getSocket();
- LOGD("NetlinkListener::onDataAvailable()");
-
int count;
if ((count = recv(socket, mBuffer, sizeof(mBuffer), 0)) < 0) {
@@ -47,8 +45,7 @@
goto out;
}
- LOGD("Ignoring '%s' netlink event", evt->getSubsystem());
-
+ onEvent(evt);
out:
delete evt;
return true;