launch mdnsd when publish/discover 72/239472/1
authorSeungbae Shin <seungbae.shin@samsung.com>
Mon, 27 Jul 2020 04:49:17 +0000 (13:49 +0900)
committerSeungbae Shin <seungbae.shin@samsung.com>
Mon, 27 Jul 2020 04:49:17 +0000 (13:49 +0900)
Change-Id: I9ad152104cbed90cd562af22ad457c79bbe02e72

src/stream-manager-dbus.c

index 41ca81c4e531b4a0925feb6b5d815c6474cfe4dc..7f52a7c40c2be323a8a62c88dc927a74e25afe95 100644 (file)
@@ -2409,6 +2409,34 @@ out:
     pa_dbus_send_empty_reply(conn, msg);
 }
 
+static int dbus_launch_mdnsd(pa_stream_manager *m, DBusConnection *conn) {
+    const char *name = "NONAME";
+    DBusMessage *msg, *reply;
+    DBusError err;
+
+    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;
+    }
+
+    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 uint32_t discover;
 static uint32_t protocol_tcp;
 static uint32_t publish;
@@ -2433,6 +2461,12 @@ static void handle_discover_remote_device(DBusConnection *conn, DBusMessage *msg
             pa_log_error("already loaded");
             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;
@@ -2474,6 +2508,12 @@ static void handle_publish_local_device(DBusConnection *conn, DBusMessage *msg,
             pa_log_error("already loaded");
             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;