stream-manager-dbus: launch mdnsd when remote publish/discover 32/241432/4
authorSeungbae Shin <seungbae.shin@samsung.com>
Thu, 20 Aug 2020 06:17:38 +0000 (15:17 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Fri, 21 Aug 2020 06:54:59 +0000 (06:54 +0000)
[Version] 13.0.28
[Issue Type] Update

Change-Id: I0a63ba5c5636e249f640337b25bfd698c18311d9

packaging/pulseaudio-modules-tizen.spec
src/stream-manager-dbus.c

index bb99b51..441a781 100644 (file)
@@ -1,6 +1,6 @@
 Name:             pulseaudio-modules-tizen
 Summary:          Pulseaudio modules for Tizen
-Version:          13.0.27
+Version:          13.0.28
 Release:          0
 Group:            Multimedia/Audio
 License:          LGPL-2.1+
index 0367446..c365345 100644 (file)
@@ -2349,6 +2349,38 @@ static void handle_get_ducking_state(DBusConnection *conn, DBusMessage *msg, voi
     dbus_message_unref(reply);
 }
 
+static int dbus_launch_mdnsd(pa_stream_manager *m, DBusConnection *conn) {
+    DBusMessage *msg, *reply;
+    DBusError err;
+    const char *name = NULL;
+
+    pa_log_info("launching mdnsd");
+
+    if (!(msg = dbus_message_new_method_call("net.netconfig",
+                                             "/net/netconfig/network",
+                                             "net.netconfig.network",
+                                             "LaunchMdns"))) {
+        pa_log_error("dbus method call failed");
+        return -1;
+    }
+
+    name = dbus_bus_get_unique_name(conn);
+    pa_assert_se(dbus_message_append_args(msg, DBUS_TYPE_STRING, &name, DBUS_TYPE_INVALID));
+
+    dbus_error_init(&err);
+    if (!(reply = dbus_connection_send_with_reply_and_block(conn, msg, -1, &err))) {
+        pa_log_error("Failed to method call :  %s", err.message);
+        dbus_error_free(&err);
+        return -1;
+    }
+
+    dbus_message_unref(reply);
+
+    pa_log_info("success");
+
+    return 0;
+}
+
 static void handle_set_remote_permission(DBusConnection *conn, DBusMessage *msg, void *userdata) {
     pa_stream_manager *m = (pa_stream_manager*)userdata;
     dbus_uint32_t index;
@@ -2444,6 +2476,11 @@ static void handle_discover_remote_device(DBusConnection *conn, DBusMessage *msg
             goto error;
         }
 
+        if (dbus_launch_mdnsd(m, conn) == -1) {
+            pa_log_error("failed to launch mdnsd!!!");
+            goto error;
+        }
+
         if (pa_module_load(&module, m->core, "module-tizenaudio-discover", NULL)) {
             pa_log_error("failed to load module");
             goto error;
@@ -2486,6 +2523,11 @@ static void handle_publish_local_device(DBusConnection *conn, DBusMessage *msg,
             goto error;
         }
 
+        if (dbus_launch_mdnsd(m, conn) == -1) {
+            pa_log_error("failed to launch mdnsd!!!");
+            goto error;
+        }
+
         if (pa_module_load(&module, m->core, "module-native-protocol-tcp", "auth-anonymous=1")) {
             pa_log_error("failed to load module");
             goto error;