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;