Replace HAL interface with hal-api-wifi
[platform/core/connectivity/net-config.git] / src / wifi.c
index 60f8092..5f966b7 100755 (executable)
 #include "wifi-extension.h"
 #include "wifi-dpp.h"
 
-#define SPRD_CP2_FIRMWARE_PATH "/usr/bin/cp2-downloader"
+#define SPRD_CP2_FIRMWARE_PATH "/hal/bin/cp2-downloader"
 #define SPRD_CP2_FIRMWARE_STATE_PATH "/tmp/.wifi-firmware-loaded"
+#define WIFI_SYSTEMD_SERVICE_PATH "/usr/lib/systemd/system/wifi-ready.service"
 static int is_wifi_firmware_downloaded = FALSE;
 
 static Wifi *wifi_object = NULL;
 static NetConnmanAgent *connman_agent_object = NULL;
 static WifiFirmware *wififirmware_object = NULL;
+static char *wifi_def_mac = NULL;
 
 Wifi *get_wifi_object(void){
        return wifi_object;
@@ -74,11 +76,33 @@ static void _set_wifi_mac_address(void)
        gchar *mac_addr = NULL;
 
        mac_addr = vconf_get_str(VCONFKEY_WIFI_BSSID_ADDRESS);
-       if (mac_addr != NULL) {
-               if (strlen(mac_addr) == 0)
+       if (mac_addr == NULL || strlen(mac_addr) == 0) {
+               if (wifi_def_mac)
+                       netconfig_set_mac_address_to_vconf(wifi_def_mac);
+               else
                        netconfig_set_mac_address_from_file();
-               free(mac_addr);
        }
+
+       g_free(mac_addr);
+}
+
+void wifi_set_default_mac(char *def_mac)
+{
+       if (!def_mac)
+               return;
+
+       if (wifi_def_mac)
+               g_free(wifi_def_mac);
+
+       wifi_def_mac = def_mac;
+}
+
+int wifi_check_systemd_service(void)
+{
+       if (access(WIFI_SYSTEMD_SERVICE_PATH, F_OK ) != -1 )
+           return 1;
+       else
+           return 0;
 }
 
 void __netconfig_wifi_connect_reply(GObject *source_object, GAsyncResult *res,
@@ -390,4 +414,6 @@ void wifi_object_deinit(void)
 
        wifi_power_deinitialize();
        wifi_state_deinitialize();
+
+       g_free(wifi_def_mac);
 }