From 8a2a0ad822f5f730dd72c45e7e62c99fca80472c Mon Sep 17 00:00:00 2001 From: Sangchul Lee Date: Thu, 12 Jan 2023 15:09:53 +0900 Subject: [PATCH] webrtc_dns: Use version 4 UUID as a unique hostname It is mentioned in 3.1.1. of the link below. : https://www.ietf.org/archive/id/draft-ietf-mmusic-mdns-ice-candidates-03.html [Version] 0.3.281 [Issue type] Improvement Change-Id: Ia4665c17fd812fb61d0e5f8c33c3ef7ecc97955a Signed-off-by: Sangchul Lee (cherry picked from commit 5a1a61f89bb969e8fe807123677e7decb0a4e202) --- packaging/capi-media-webrtc.spec | 2 +- src/webrtc_dns.c | 11 +++++------ 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/packaging/capi-media-webrtc.spec b/packaging/capi-media-webrtc.spec index 25ee1624..01c695a4 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.280 +Version: 0.3.281 Release: 0 Group: Multimedia/API License: Apache-2.0 diff --git a/src/webrtc_dns.c b/src/webrtc_dns.c index 6a78ca95..64c8f051 100644 --- a/src/webrtc_dns.c +++ b/src/webrtc_dns.c @@ -22,7 +22,6 @@ #include #define DNSS_REGISTER_NAME "nativeWebRTC" -#define DNSS_REGISTER_HOST "nativewebrtc.local" //LCOV_EXCL_START static void __dns_service_register_record_cb(DNSServiceRef service, DNSRecordRef record, const DNSServiceFlags flags, DNSServiceErrorType error_type, @@ -107,8 +106,9 @@ int _register_dns_service(webrtc_s *webrtc) struct sockaddr_storage hostaddr; struct addrinfo *addrs = NULL; static DNSRecordRef record = NULL; - gchar *ip; - const char *host = DNSS_REGISTER_HOST; + g_autofree gchar *ip = NULL; + g_autofree gchar *uuid = g_uuid_string_random(); + g_autofree gchar *host = g_strdup_printf("%s.local", uuid); RET_VAL_IF(webrtc == NULL, WEBRTC_ERROR_INVALID_PARAMETER, "webrtc is NULL"); RET_VAL_IF(webrtc->dns.client_pa != NULL, WEBRTC_ERROR_INVALID_OPERATION, "client_pa has been already registered"); @@ -164,13 +164,12 @@ int _register_dns_service(webrtc_s *webrtc) LOG_INFO("client_pa[%p] client[%p] name[%s] host[%s] ip[%s]", webrtc->dns.client_pa, webrtc->dns.client, DNSS_REGISTER_NAME, host, ip); - webrtc->dns.hostname = g_strdup(host); - webrtc->dns.ip = ip; + webrtc->dns.hostname = g_steal_pointer(&host); + webrtc->dns.ip = g_steal_pointer(&ip); return WEBRTC_ERROR_NONE; error: - g_free(ip); if (webrtc->dns.client_pa) { DNSServiceRefDeallocate(webrtc->dns.client_pa); webrtc->dns.client_pa = NULL; -- 2.34.1