From: Sangchul Lee Date: Wed, 4 Jan 2023 05:09:55 +0000 (+0900) Subject: webrtc_dns: Consider more IP address ranges as private IP X-Git-Tag: accepted/tizen/7.0/unified/20230111.015131^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F94%2F286494%2F1;p=platform%2Fcore%2Fapi%2Fwebrtc.git webrtc_dns: Consider more IP address ranges as private IP Address ranges below are considered as private IP. Class A: 10.0.0.0 - 10.255.255.255 Class B: 172.16.0.0 - 172.31.255.255 [Version] 0.3.279 [Issue type] Improvement Change-Id: Ib65e55aed1a7524cd77d41c1376a3452cb5946b7 Signed-off-by: Sangchul Lee --- diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 45b21b3f..22925912 100644 --- a/packaging/capi-media-webrtc.spec +++ b/packaging/capi-media-webrtc.spec @@ -1,6 +1,6 @@ Name: capi-media-webrtc Summary: A WebRTC library in Tizen Native API -Version: 0.3.278 +Version: 0.3.279 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/webrtc_dns.c b/src/webrtc_dns.c index dc5aefd7..6a78ca95 100644 --- a/src/webrtc_dns.c +++ b/src/webrtc_dns.c @@ -63,12 +63,17 @@ static void __dns_service_register_reply_cb(DNSServiceRef service, DNSServiceFla } } +static gboolean __has_private_ip_range(const gchar *s) +{ + return g_regex_match_simple("^(10.)|^(172.1[6-9].)|^(172.2[0-9].)|^(172.3[0-1].)|^(192.168.)", s, 0, 0); +} + static gchar *__get_my_private_ip(void) { struct ifaddrs *ifaddr = NULL; struct ifaddrs *ifaddr_ptr = NULL; void *sin_addr = NULL; - char addressBuffer[INET_ADDRSTRLEN]; + char addr_buf[INET_ADDRSTRLEN]; gchar *ip = NULL; getifaddrs(&ifaddr); @@ -81,12 +86,12 @@ static gchar *__get_my_private_ip(void) continue; sin_addr = &((struct sockaddr_in *)ifaddr_ptr->ifa_addr)->sin_addr; - inet_ntop(AF_INET, sin_addr, addressBuffer, INET_ADDRSTRLEN); - if (!g_str_has_prefix(addressBuffer, "192.168.")) + inet_ntop(AF_INET, sin_addr, addr_buf, INET_ADDRSTRLEN); + if (!__has_private_ip_range(addr_buf)) continue; - LOG_DEBUG("%s IPv4 Address %s", (const char *)ifaddr_ptr->ifa_name, addressBuffer); - ip = g_strdup(addressBuffer); + LOG_DEBUG("%s IPv4 Address %s", (const char *)ifaddr_ptr->ifa_name, addr_buf); + ip = g_strdup(addr_buf); break; }