webrtc_dns: Consider more IP address ranges as private IP 50/286350/3 accepted/tizen/unified/20230109.151011
authorSangchul Lee <sc11.lee@samsung.com>
Wed, 4 Jan 2023 05:09:55 +0000 (14:09 +0900)
committerSangchul Lee <sc11.lee@samsung.com>
Thu, 5 Jan 2023 02:01:13 +0000 (11:01 +0900)
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 <sc11.lee@samsung.com>
packaging/capi-media-webrtc.spec
src/webrtc_dns.c

index 45b21b3ff05dae441e2806cccdd55e33220166ff..229259121e530671bc66dd42afa721e0d17396ba 100644 (file)
@@ -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
index dc5aefd763279758018753877e06edd757c34e89..6a78ca95b66e2d69fcc8ea01c9c1c84186018121 100644 (file)
@@ -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;
        }