tizenaudio-discover: ignore local services 82/238682/5
authorSeungbae Shin <seungbae.shin@samsung.com>
Mon, 13 Jul 2020 02:12:18 +0000 (11:12 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Fri, 14 Aug 2020 01:44:12 +0000 (10:44 +0900)
[Version] 13.0.22
[Issue Type] Update

Change-Id: I6e8f334e6a16f5f4367c002ea5bd5809dc6b561b

Makefile.am
packaging/pulseaudio-modules-tizen.spec
src/module-tizenaudio-discover.c

index 07985dc..90d1260 100644 (file)
@@ -119,8 +119,8 @@ endif
 
 module_tizenaudio_discover_la_SOURCES = src/module-tizenaudio-discover.c
 module_tizenaudio_discover_la_LDFLAGS = $(MODULE_LDFLAGS)
-module_tizenaudio_discover_la_LIBADD = $(MODULE_LIBADD) $(DNSSD_LIBS)
-module_tizenaudio_discover_la_CFLAGS = $(MODULE_CFLAGS) $(DNSSD_CFLAGS)
+module_tizenaudio_discover_la_LIBADD = $(MODULE_LIBADD) $(DNSSD_LIBS) $(VCONF_LIBS)
+module_tizenaudio_discover_la_CFLAGS = $(MODULE_CFLAGS) $(DNSSD_CFLAGS) $(VCONF_CFLAGS)
 
 module_tizenaudio_publish_la_SOURCES = src/module-tizenaudio-publish.c
 module_tizenaudio_publish_la_LDFLAGS = $(MODULE_LDFLAGS)
index c3749d4..541fad8 100644 (file)
@@ -1,6 +1,6 @@
 Name:             pulseaudio-modules-tizen
 Summary:          Pulseaudio modules for Tizen
-Version:          13.0.21
+Version:          13.0.22
 Release:          0
 Group:            Multimedia/Audio
 License:          LGPL-2.1+
index ac88209..8b3ec80 100644 (file)
 #include <stdlib.h>
 #include <string.h>
 #include <unistd.h>
+#include <stdbool.h>
 
 #include <dns_sd.h>
 #include <arpa/inet.h>
 #include <netinet/in.h>
+#include <vconf.h>
+#include <vconf-keys.h>
 
 #include <pulse/xmalloc.h>
 
@@ -352,6 +355,16 @@ finish:
         tunnel_free(tnl);
 }
 
+static bool is_local_service(const char *ip_addr) {
+    char *ipv4_addr = NULL;
+    bool is_local = false;
+
+    ipv4_addr = vconf_get_str(VCONFKEY_NETWORK_IP);
+    is_local = pa_safe_streq(ipv4_addr, ip_addr);
+    pa_xfree(ipv4_addr);
+
+    return is_local;
+}
 
 static void dnssd_getaddrinfo_reply_cb(DNSServiceRef sd_ref,
                                        unsigned int flags, unsigned int if_index,
@@ -383,10 +396,12 @@ static void dnssd_getaddrinfo_reply_cb(DNSServiceRef sd_ref,
     pa_log_info("  Host Name       : %s", data->host_name);
     pa_log_info("  IP Address      : %s", data->ip_address);
     pa_log_info("  TTL             : %d", ttl);
-
     pa_log_info("-----------------------------------");
 
-    tunnel_add(data);
+    if (is_local_service(data->ip_address))
+        pa_log_info("Skip local service!!!");
+    else
+        tunnel_add(data);
 
     /*  cleanup addr */
     request_clear(data->u->module->core->mainloop, &data->addr);