Fix for IOT-813 (High Battery Consumption) 92/55692/1 accepted/tizen/mobile/20151229.071310 accepted/tizen/tv/20151229.071332 accepted/tizen/wearable/20151229.071352 submit/tizen/20151229.014018
authorTim Kourt <tim.a.kourt@intel.com>
Fri, 16 Oct 2015 17:25:50 +0000 (10:25 -0700)
committeryoungman <yman.jung@samsung.com>
Tue, 29 Dec 2015 00:11:04 +0000 (09:11 +0900)
Change-Id: Ifd4692074430e45b935e0b9c6b6fa4b41a9951f0
Signed-off-by: Tim Kourt <tim.a.kourt@intel.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/3901
Tested-by: jenkins-iotivity <jenkins-iotivity@opendaylight.org>
Reviewed-by: jihwan seo <jihwan.seo@samsung.com>
Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
resource/csdk/connectivity/src/ip_adapter/caipserver.c

index 5dd5b87..e5db106 100644 (file)
@@ -120,7 +120,6 @@ static void CAReceiveHandler(void *data)
 {
     (void)data;
     OIC_LOG(DEBUG, TAG, "IN");
-
     while (!caglobals.ip.terminate)
     {
         CAFindReadyMessage();
@@ -196,8 +195,10 @@ static void CASelectReturned(fd_set *readFds, int ret)
             CAHandleNetlink();
             break;
         }
-        else
+        else if (FD_ISSET(caglobals.ip.shutdownFds[0], readFds))
         {
+            char buf[10] = {0};
+            (void)read(caglobals.ip.shutdownFds[0], buf, sizeof (buf));
             CAInterface_t *ifchanged = CAFindInterfaceChange();
             if (ifchanged)
             {
@@ -206,6 +207,10 @@ static void CASelectReturned(fd_set *readFds, int ret)
             }
             break;
         }
+        else
+        {
+            break;
+        }
 
         (void)CAReceiveMessage(fd, flags);
         FD_CLR(fd, readFds);
@@ -667,6 +672,7 @@ static void applyMulticastToInterface6(uint32_t interface)
     //applyMulticast6(caglobals.ip.m6.fd, &IPv6MulticastAddressSit, interface);
     //applyMulticast6(caglobals.ip.m6.fd, &IPv6MulticastAddressOrg, interface);
     //applyMulticast6(caglobals.ip.m6.fd, &IPv6MulticastAddressGlb, interface);
+
     //applyMulticast6(caglobals.ip.m6s.fd, &IPv6MulticastAddressInt, interface);
     applyMulticast6(caglobals.ip.m6s.fd, &IPv6MulticastAddressLnk, interface);
     //applyMulticast6(caglobals.ip.m6s.fd, &IPv6MulticastAddressRlm, interface);