Fix Wi-Fi activation issue after booting 00/274900/1
authorAnjali Nijhara <a.nijhara@samsung.com>
Wed, 11 May 2022 13:35:00 +0000 (19:05 +0530)
committerAnjali Nijhara <a.nijhara@samsung.com>
Wed, 11 May 2022 13:35:00 +0000 (19:05 +0530)
Change-Id: I1136dba1fc5dec2b1c8e6222e8b2cb38a0d89046

plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c

index 9b21cf7..f720a5a 100644 (file)
@@ -4062,21 +4062,38 @@ gboolean _ws_util_execute_file(const char *file_path,
 
 static int __ws_p2p_firmware_start(const char *interface_name)
 {
-       int rv = 0;
-
-       rv = hal_wifi_get_backend();
-       if (rv < 0) {
-               WDP_LOGD("hal_wifi_get_backend() failed, ret: %d", rv);
-               return -1;
+       GError *error = NULL;
+       GDBusConnection *conn = g_bus_get_sync(G_BUS_TYPE_SYSTEM, NULL, &error);
+       if (conn == NULL) {
+               WDP_LOGE("Failed to get system bus");
+       return -1;
        }
 
-       rv = hal_wifi_p2p_start(interface_name);
-       if (rv < 0) {
-               WDP_LOGD("hal_wifi_p2p_start() failed, ret: %d", rv);
-               return -1;
+       error = NULL;
+       GVariant *params = g_variant_new("(sb)", interface_name, FALSE);
+       GVariant *reply = g_dbus_connection_call_sync(
+               conn,
+               NETCONFIG_SERVICE, /* bus name */
+               NETCONFIG_WIFI_PATH, /* object path */
+               NETCONFIG_WIFI_INTERFACE, /* interface name */
+               "LoadDriver", /* method name */
+               params, /* GVariant *params */
+               NULL, /* reply_type */
+               G_DBUS_CALL_FLAGS_NONE, /* flags */
+               SUPPLICANT_TIMEOUT , /* timeout */
+               NULL, /* cancellable */
+               &error); /* error */
+
+       if (error != NULL) {
+               WDP_LOGE("Error! Failed to call method: [%s]", error->message);
+               g_error_free(error);
+               __WDP_LOG_FUNC_EXIT__;
        }
 
-       WDP_LOGI("Successfully loaded p2p device driver");
+       if (reply)
+               g_variant_unref(reply);
+       g_object_unref(conn);
+
        return 0;
 }