From a2aaa024a4fc6c27357f9f5e454dff4e99536f8d Mon Sep 17 00:00:00 2001 From: Jaehyun Kim Date: Fri, 29 Jan 2021 16:31:33 +0900 Subject: [PATCH] Replace HAL interface with hal-api-wifi Change-Id: Ib479ed18dbfc1585baa4524218b72a7855d18703 Signed-off-by: Jaehyun Kim --- packaging/wifi-direct-manager.service | 2 +- packaging/wifi-direct-manager.spec | 1 + .../wpasupplicant/ctrl_iface_dbus/CMakeLists.txt | 2 +- .../ctrl_iface_dbus/wfd-plugin-wpasupplicant.c | 36 ++++++++++++++-------- 4 files changed, 27 insertions(+), 14 deletions(-) diff --git a/packaging/wifi-direct-manager.service b/packaging/wifi-direct-manager.service index cc8b056..33cd624 100644 --- a/packaging/wifi-direct-manager.service +++ b/packaging/wifi-direct-manager.service @@ -8,6 +8,6 @@ SmackProcessLabel=System ExecStart=/usr/bin/wfd-manager User=network_fw Group=network_fw -Capabilities=cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_kill=i +Capabilities=cap_net_bind_service,cap_net_broadcast,cap_net_admin,cap_net_raw,cap_kill,cap_sys_module=i SecureBits=keep-caps diff --git a/packaging/wifi-direct-manager.spec b/packaging/wifi-direct-manager.spec index 03c6ec8..55c1b9a 100644 --- a/packaging/wifi-direct-manager.spec +++ b/packaging/wifi-direct-manager.spec @@ -26,6 +26,7 @@ BuildRequires: pkgconfig(capi-system-info) BuildRequires: pkgconfig(capi-appfw-application) BuildRequires: pkgconfig(libsystemd-login) BuildRequires: pkgconfig(libtzplatform-config) +BuildRequires: pkgconfig(hal-api-wifi) %if 0%{?gtests:1} BuildRequires: pkgconfig(gmock) %endif diff --git a/plugin/wpasupplicant/ctrl_iface_dbus/CMakeLists.txt b/plugin/wpasupplicant/ctrl_iface_dbus/CMakeLists.txt index 5f966de..906713e 100644 --- a/plugin/wpasupplicant/ctrl_iface_dbus/CMakeLists.txt +++ b/plugin/wpasupplicant/ctrl_iface_dbus/CMakeLists.txt @@ -22,7 +22,7 @@ SET(PLUGIN_SRCS dbus/wfd-plugin-supplicant-dbus.c ) -pkg_check_modules(plugin_pkgs REQUIRED capi-network-wifi-direct glib-2.0 gio-2.0 dlog) +pkg_check_modules(plugin_pkgs REQUIRED capi-network-wifi-direct glib-2.0 gio-2.0 dlog hal-api-wifi) FOREACH(flag ${plugin_pkgs_CFLAGS}) SET(EXTRA_CFLAGS "${EXTRA_CFLAGS} ${flag}") diff --git a/plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c b/plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c index 266bf04..06b1ba0 100644 --- a/plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c +++ b/plugin/wpasupplicant/ctrl_iface_dbus/wfd-plugin-wpasupplicant.c @@ -44,6 +44,7 @@ #include #include +#include #include "wifi-direct-oem.h" #include "wfd-plugin-log.h" @@ -3979,14 +3980,19 @@ gboolean _ws_util_execute_file(const char *file_path, static int __ws_p2p_firmware_start(const char *interface_name) { - gboolean rv = FALSE; - const char *path = "/usr/bin/wlan.sh"; - char *const args[] = { "/usr/bin/wlan.sh", "p2p", (char *)interface_name, NULL }; - char *const envs[] = { NULL }; + int rv = 0; - rv = _ws_util_execute_file(path, args, envs); - if (rv != TRUE) + rv = hal_wifi_get_backend(); + if (rv < 0) { + WDP_LOGD("hal_wifi_get_backend() failed, ret: %d", rv); return -1; + } + + rv = hal_wifi_p2p_start(interface_name); + if (rv < 0) { + WDP_LOGD("hal_wifi_p2p_start() failed, ret: %d", rv); + return -1; + } WDP_LOGI("Successfully loaded p2p device driver"); return 0; @@ -3994,13 +4000,19 @@ static int __ws_p2p_firmware_start(const char *interface_name) static int __ws_p2p_firmware_stop(const char *interface_name) { - gboolean rv = FALSE; - const char *path = "/usr/bin/wlan.sh"; - char *const args[] = { "/usr/bin/wlan.sh", "stop", (char *)interface_name, NULL }; - char *const envs[] = { NULL }; - rv = _ws_util_execute_file(path, args, envs); - if (rv < 0) + int rv = 0; + + rv = hal_wifi_get_backend(); + if (rv < 0) { + WDP_LOGD("hal_wifi_get_backend() failed, ret: %d", rv); return -1; + } + + rv = hal_wifi_stop(interface_name); + if (rv < 0) { + WDP_LOGD("hal_wifi_stop() failed, ret: %d", rv); + return -1; + } WDP_LOGI("Successfully removed p2p device driver"); return 0; -- 2.7.4