From: saerome.kim Date: Wed, 11 Apr 2018 12:39:09 +0000 (+0900) Subject: comp-manager: make comp_is_local_ip() function uses both IPv6 and IPv6 when comparing. X-Git-Tag: submit/tizen/20190131.065036~46 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=d2dfbb3e06b58391eb582f411086ce13bc93e9eb;p=platform%2Fcore%2Fapi%2Fmulti-device-group.git comp-manager: make comp_is_local_ip() function uses both IPv6 and IPv6 when comparing. Signed-off-by: saerome.kim --- diff --git a/src/companion-manager/include/comp_util.h b/src/companion-manager/include/comp_util.h index 3fe04c1..0c5edd2 100644 --- a/src/companion-manager/include/comp_util.h +++ b/src/companion-manager/include/comp_util.h @@ -28,7 +28,7 @@ extern "C" void comp_remove_ip_info(void); int comp_make_ip_info(void); -int comp_compare_ip_and_ifname(char *ipdata); +int comp_is_local_ip(char *ipdata); #ifdef __cplusplus } diff --git a/src/companion-manager/src/comp_group.c b/src/companion-manager/src/comp_group.c index 6aa2306..270d772 100644 --- a/src/companion-manager/src/comp_group.c +++ b/src/companion-manager/src/comp_group.c @@ -348,7 +348,7 @@ GVariant *comp_group_get_remote_mot_enabled_devices() g_variant_builder_add(&builder, "{sv}", "Address", g_variant_new_string(device->addr)); g_variant_builder_add(&builder, "{sv}", "DeviceType", - g_variant_new_uint16(comp_compare_ip_and_ifname(device->addr))); + g_variant_new_uint16(comp_is_local_ip(device->addr))); g_variant_builder_add(&builder, "{sv}", "Ifindex", g_variant_new_int32(device->ifindex)); g_variant_builder_add(&builder, "{sv}", "RouteData", @@ -761,7 +761,7 @@ GVariant *comp_group_get_mowned_devices() g_variant_builder_add(&builder, "{sv}", "Address", g_variant_new_string(device->addr)); g_variant_builder_add(&builder, "{sv}", "DeviceType", - g_variant_new_uint16(comp_compare_ip_and_ifname(device->addr))); + g_variant_new_uint16(comp_is_local_ip(device->addr))); g_variant_builder_add(&builder, "{sv}", "Ifindex", g_variant_new_int32(device->ifindex)); g_variant_builder_add(&builder, "{sv}", "RouteData", @@ -818,7 +818,7 @@ GVariant *comp_group_get_my_mowned_devices() g_variant_builder_add(&builder, "{sv}", "Address", g_variant_new_string(my_device->addr)); g_variant_builder_add(&builder, "{sv}", "DeviceType", - g_variant_new_uint16(comp_compare_ip_and_ifname(my_device->addr))); + g_variant_new_uint16(comp_is_local_ip(my_device->addr))); g_variant_builder_add(&builder, "{sv}", "Ifindex", g_variant_new_int32(my_device->ifindex)); g_variant_builder_add(&builder, "{sv}", "RouteData", diff --git a/src/companion-manager/src/comp_util.c b/src/companion-manager/src/comp_util.c index 7f756e0..ae3bfa2 100644 --- a/src/companion-manager/src/comp_util.c +++ b/src/companion-manager/src/comp_util.c @@ -285,35 +285,32 @@ int comp_make_ip_info(void) return 0; } -int comp_compare_ip_and_ifname(char *ipdata) +int comp_is_local_ip(char *ipdata) { char *ip = NULL; char *ifname = NULL; + char *save_str = NULL; GList *iter = NULL; + ipv6_info_s *ipv6info = NULL; + ipv4_info_s *ipv4info = NULL; + + ip = strtok_r(ipdata, "%", &save_str); + ifname = strtok_r(NULL, "%", &save_str); + + iter = g_list_first(g_ip_info.ipv6_list); + while (NULL != iter) { + ipv6info = iter->data; + if (ipv6info && ipv6info->ip && !strncmp(ipv6info->ip, ip, INET6_ADDRSTRLEN)) + return LOCAL_IP; + iter = g_list_next(iter); + } - ip = strtok_r(ipdata, "%", &ipdata); - ifname = strtok_r(ipdata, "%", &ipdata); - - /* In case IPv4 ip = 192.168.86.90, ifname = (null) */ - if (NULL == ifname) { - ipv4_info_s *ipv4info = NULL; - iter = g_list_first(g_ip_info.ipv4_list); - while (NULL != iter) { - ipv4info = iter->data; - if (ipv4info && ipv4info->ip && !strncmp(ipv4info->ip, ip, INET_ADDRSTRLEN)) - return LOCAL_IP; - iter = g_list_next(iter); - } - } else { - /* In case IPv4 ip = fe80::7edd:90ff:feb1:1b57, ifname = wlan0 */ - ipv6_info_s *ipv6info = NULL; - iter = g_list_first(g_ip_info.ipv6_list); - while (NULL != iter) { - ipv6info = iter->data; - if (ipv6info && ipv6info->ip && !strncmp(ipv6info->ip, ip, INET6_ADDRSTRLEN)) - return LOCAL_IP; - iter = g_list_next(iter); - } + iter = g_list_first(g_ip_info.ipv4_list); + while (NULL != iter) { + ipv4info = iter->data; + if (ipv4info && ipv4info->ip && !strncmp(ipv4info->ip, ip, INET_ADDRSTRLEN)) + return LOCAL_IP; + iter = g_list_next(iter); } return REMOTE_IP;