Modified getNetAddress() in SceneUtils
authorChaJiWon <jw_wonny.cha@samsung.com>
Wed, 12 Apr 2017 12:12:46 +0000 (21:12 +0900)
committerUze Choi <uzchoi@samsung.com>
Thu, 13 Apr 2017 10:43:19 +0000 (10:43 +0000)
If network have IPv4 address, it returns IPv4 address.

Change-Id: Iba93339b6a980251194b02d6fa905006a88a0608
Signed-off-by: ChaJiWon <jw_wonny.cha@samsung.com>
Reviewed-on: https://gerrit.iotivity.org/gerrit/18675
Reviewed-by: Uze Choi <uzchoi@samsung.com>
Reviewed-by: JungYong KIM <jyong2.kim@samsung.com>
Tested-by: jenkins-iotivity <jenkins@iotivity.org>
service/scene-manager/src/SceneUtils.cpp

index 7face9f..0b244a0 100755 (executable)
@@ -93,7 +93,8 @@ namespace OIC
                     {
                         address_ipv4 = std::string(netInfo[i].addr) + ":"
                                             + std::to_string(netInfo[i].port);
-                    } else if(netInfo[i].flags == CATransportFlags_t::CA_IPV6)
+                    }
+                    else if(netInfo[i].flags == CATransportFlags_t::CA_IPV6)
                     {
                         char addressEncoded[CA_MAX_URI_LENGTH] = {0};
 
@@ -111,12 +112,14 @@ namespace OIC
                     }
                 }
             }
-
-            if(address_ipv4.length() > 0 && address_ipv6.length() == 0)
+            // currently ipv6 case doesn't work due to create remote resource object api fail on v6.
+            // Even if both ipv4 & ipv6 are in the netinfo, ipv4 address will be returned as below.
+            // if create remote resource object api work well on IPv6 later, below should be fixed.
+            if (!address_ipv4.empty())
             {
                 OICFree(netInfo);
                 return address_ipv4;
-            } else if(address_ipv6.length() > 0)
+            } else if (!address_ipv6.empty())
             {
                 OICFree(netInfo);
                 return address_ipv6;