Support association failed error
[platform/core/connectivity/net-config.git] / src / main.c
index c19c3b1..f1832c7 100755 (executable)
 #include "log.h"
 #include "util.h"
 #include "wifi.h"
+#include "setting.h"
 #include "netdbus.h"
 #include "emulator.h"
 #include "neterror.h"
 #include "wifi-agent.h"
 #include "wifi-power.h"
 #include "vpnsvc.h"
+#include "mptcp.h"
 #include "network-clock.h"
 #include "network-dpm.h"
 #include "network-state.h"
@@ -39,6 +41,8 @@
 #include "signal-handler.h"
 #include "network-statistics.h"
 #include "network-dump.h"
+#include "ethernet.h"
+#include "wifi-firmware.h"
 
 static GMainLoop *main_loop = NULL;
 
@@ -52,12 +56,20 @@ gboolean __net_ethernet_cable_status_polling_callback(gpointer data)
        return TRUE;
 }
 
+void _got_name_cb_container(void)
+{
+       register_gdbus_signal_container();
+       netconfig_update_initial_container_vconf();
+}
+
 void _got_name_cb(void)
 {
        wifi_object_create_and_init();
        state_object_create_and_init();
        statistics_object_create_and_init();
        vpnsvc_create_and_init();
+       mptcp_object_create_and_init();
+       ethernet_object_create_and_init();
 
        register_gdbus_signal();
        connman_register_agent();
@@ -73,12 +85,16 @@ static void _objects_deinit(void)
        state_object_deinit();
        statistics_object_deinit();
        vpnsvc_destroy_deinit();
+       mptcp_object_deinit();
+       ethernet_object_deinit();
 }
 
 int main(int argc, char *argv[])
 {
        int ret;
        int check_ethernet_monitor_timer = 0;
+       char *ifname = NULL;
+       char *wifi_def_mac = NULL;
 
        umask(0077);
 
@@ -105,15 +121,46 @@ int main(int argc, char *argv[])
        main_loop = g_main_loop_new(NULL, FALSE);
        if (main_loop == NULL) {
                ERR("Couldn't create GMainLoop\n");
+               log_cleanup();
+               return 0;
+       }
+
+       if (access(CONTAINER_FILE, F_OK) == 0) {
+               ret = setup_gdbus(_got_name_cb_container);
+               if (ret != 0) {
+                       ERR("_netconfig_setup_gdbus is failed\n");
+                       return 0;
+               }
+
+               g_main_loop_run(main_loop);
+
+               cleanup_gdbus();
+               log_cleanup();
+               deregister_gdbus_signal_container();
+
                return 0;
        }
 
+       /* Backward compatibility:
+        * Execute only when the old style hal architecture is not running
+        */
+       if (!wifi_check_systemd_service()) {
+               ifname = netconfig_get_default_ifname_from_file();
+
+               if (ifname && netconfig_wifi_firmware_get_mac(ifname, &wifi_def_mac) == 0)
+                       wifi_set_default_mac(wifi_def_mac);
+
+               g_free(ifname);
+       }
+
        ret = setup_gdbus(_got_name_cb);
        if (ret > 0) {
                ERR("_netconfig_setup_gdbus is failed\n");
                return 0;
        }
 
+       netconfig_setting_init();
+
        netconfig_error_init();
 
        if (TIZEN_NTP_ENABLE)
@@ -126,13 +173,21 @@ int main(int argc, char *argv[])
        netconfig_dpm_init();
 
        /* Start tcpdump if dump state is on */
+#if defined TIZEN_DEBUG_ENABLE
        check_dump_state_and_start();
+#endif
+
+       /* Backward compatibility:
+        * Execute only when the old style hal architecture is running
+        */
+       if (TIZEN_WLAN_BOARD_SPRD && wifi_check_systemd_service())
+               wifi_firmware_download();
 
        /*In case no emulator, set the ETH0 Mac address*/
        if (TIZEN_TV && emulator_is_emulated() == FALSE)
                __netconfig_set_ether_macaddr();
 
-       if (netconfig_check_feature_supported(ETHERNET_FEATURE)) {
+       if (netconfig_check_feature_supported(NETCONFIG_SUPPORTED_FEATURE_ETHERNET)) {
                /* Register the callback to check the ethernet Plug-in /Plug-out Status */
                check_ethernet_monitor_timer = g_timeout_add(ETH_POLLING_TIME,
                                __net_ethernet_cable_status_polling_callback,
@@ -153,6 +208,8 @@ int main(int argc, char *argv[])
 
        netconfig_dpm_deinit();
 
+       netconfig_setting_deinit();
+
        if (TIZEN_NTP_ENABLE)
                netconfig_clock_deinit();