X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fmain.c;h=13e26d46d02025069bcb8e205e42c7684ff4f1f8;hb=bf0e619ef451bde3568c1af509ccb12cbda2ff93;hp=6480caa629803a79aad45b2857ed45ff8f571c2d;hpb=f89b473dfd8e916314b534b3397442f8c869c783;p=platform%2Fupstream%2Fconnman.git diff --git a/src/main.c b/src/main.c old mode 100644 new mode 100755 index 6480caa..13e26d4 --- a/src/main.c +++ b/src/main.c @@ -34,6 +34,8 @@ #include #include #include +#include +#include #include @@ -52,6 +54,11 @@ #define DEFAULT_ONLINE_CHECK_INITIAL_INTERVAL 1 #define DEFAULT_ONLINE_CHECK_MAX_INTERVAL 12 +#if defined TIZEN_EXT +#define DEFAULT_WIFI_INTERFACE "wlan0" +#define CONTAINER_FILE "/run/systemd/container" +#endif + #define MAINFILE "main.conf" #define CONFIGMAINFILE CONFIGDIR "/" MAINFILE @@ -102,6 +109,19 @@ static struct { bool auto_connect_roaming_services; bool acd; bool use_gateways_as_timeservers; +#if defined TIZEN_EXT + char **cellular_interfaces; + bool tizen_tv_extension; + bool auto_ip; + char *global_nameserver; + bool supplicant_debug; + char *def_wifi_ifname; + bool file_log; + bool dlog_log; + bool simple_log; + bool wifi_roam_scan; + bool wifi_roam; +#endif } connman_settings = { .bg_scan = true, .pref_timeservers = NULL, @@ -127,8 +147,77 @@ static struct { .auto_connect_roaming_services = false, .acd = false, .use_gateways_as_timeservers = false, +#if defined TIZEN_EXT + .cellular_interfaces = NULL, + .tizen_tv_extension = false, + .auto_ip = true, + .global_nameserver = NULL, + .supplicant_debug = false, + .def_wifi_ifname = DEFAULT_WIFI_INTERFACE, + .file_log = true, + .dlog_log = true, + .simple_log = true, + .wifi_roam_scan = false, + .wifi_roam = false, +#endif }; +#if defined TIZEN_EXT +static struct { + /* BSSID */ + char *ins_preferred_freq_bssid; + bool ins_last_connected_bssid; + bool ins_assoc_reject; + bool ins_signal_bssid; + unsigned int ins_preferred_freq_bssid_score; + unsigned int ins_last_connected_bssid_score; + unsigned int ins_assoc_reject_score; + /* SSID */ + bool ins_last_user_selection; + unsigned int ins_last_user_selection_time; + bool ins_last_connected; + char *ins_preferred_freq; + char **ins_security_priority; + unsigned int ins_security_priority_count; + bool ins_signal; + bool ins_internet; + unsigned int ins_last_user_selection_score; + unsigned int ins_last_connected_score; + unsigned int ins_preferred_freq_score; + unsigned int ins_security_priority_score; + unsigned int ins_internet_score; + /* Common */ + int ins_signal_level3_5ghz; + int ins_signal_level3_24ghz; +} connman_ins_settings = { + /* BSSID */ + .ins_preferred_freq_bssid = NULL, + .ins_last_connected_bssid = true, + .ins_assoc_reject = true, + .ins_signal_bssid = true, + .ins_preferred_freq_bssid_score = 20, + .ins_last_connected_bssid_score = 20, + .ins_assoc_reject_score = 10, + /* SSID */ + .ins_last_user_selection = true, + .ins_last_user_selection_time = 480, + .ins_last_connected = true, + .ins_preferred_freq = NULL, + .ins_security_priority = NULL, + .ins_security_priority_count = 0, + .ins_signal = true, + .ins_internet = true, + .ins_last_user_selection_score = 30, + .ins_last_connected_score = 30, + .ins_preferred_freq_score = 60, + .ins_security_priority_score = 5, + .ins_internet_score = 30, + /* Common */ + .ins_signal_level3_5ghz = -76, + .ins_signal_level3_24ghz = -74, +}; +#endif + #define CONF_BG_SCAN "BackgroundScanning" #define CONF_PREF_TIMESERVERS "FallbackTimeservers" #define CONF_AUTO_CONNECT_TECHS "DefaultAutoConnectTechnologies" @@ -153,6 +242,47 @@ static struct { #define CONF_AUTO_CONNECT_ROAMING_SERVICES "AutoConnectRoamingServices" #define CONF_ACD "AddressConflictDetection" #define CONF_USE_GATEWAYS_AS_TIMESERVERS "UseGatewaysAsTimeservers" +#if defined TIZEN_EXT +#define CONF_CELLULAR_INTERFACE "NetworkCellularInterfaceList" +#define CONF_TIZEN_TV_EXT "TizenTVExtension" +#define CONF_ENABLE_AUTO_IP "EnableAutoIp" +#define CONF_GLOBAL_NAMESERVER "GlobalNameserver" +#define CONF_CONNMAN_SUPPLICANT_DEBUG "ConnmanSupplicantDebug" +#define CONF_CONNMAN_WIFI_DEF_IFNAME "DefaultWifiInterface" +#define CONF_CONNMAN_FILE_LOG "FileLogging" +#define CONF_CONNMAN_DLOG_LOG "DlogLogging" +#define CONF_CONNMAN_SIMPLIFIED_LOG "SimplifiedLog" +#define CONF_CONNMAN_WIFI_ROAM_SCAN "WifiRoamingScan" +#define CONF_CONNMAN_WIFI_ROAM "WifiRoaming" +#endif + +#if defined TIZEN_EXT +/* BSSID */ +#define CONF_INS_PREFERRED_FREQ_BSSID "INSPreferredFreqBSSID" +#define CONF_INS_PREFERRED_FREQ_BSSID_SCORE "INSPreferredFreqBSSIDScore" +#define CONF_INS_LAST_CONNECTED_BSSID "INSLastConnectedBSSID" +#define CONF_INS_LAST_CONNECTED_BSSID_SCORE "INSLastConnectedBSSIDScore" +#define CONF_INS_ASSOC_REJECT "INSAssocReject" +#define CONF_INS_ASSOC_REJECT_SCORE "INSAssocRejectScore" +#define CONF_INS_SIGNAL_BSSID "INSSignalBSSID" +/* SSID */ +#define CONF_INS_LAST_USER_SELECTION "INSLastUserSelection" +#define CONF_INS_LAST_USER_SELECTION_TIME "INSLastUserSelectionTime" +#define CONF_INS_LAST_USER_SELECTION_SCORE "INSLastUserSelectionScore" +#define CONF_INS_LAST_CONNECTED "INSLastConnected" +#define CONF_INS_LAST_CONNECTED_SCORE "INSLastConnectedScore" +#define CONF_INS_PREFERRED_FREQ "INSPreferredFreq" +#define CONF_INS_PREFERRED_FREQ_SCORE "INSPreferredFreqScore" +#define CONF_INS_SECURITY_PRIORITY "INSSecurityPriority" +#define CONF_INS_SECURITY_PRIORITY_COUNT "INSSecurityPriorityCount" +#define CONF_INS_SECURITY_PRIORITY_SCORE "INSSecurityPriorityScore" +#define CONF_INS_SIGNAL "INSSignal" +#define CONF_INS_INTERNET "INSInternet" +#define CONF_INS_INTERNET_SCORE "INSInternetScore" +/* Common */ +#define CONF_INS_SIGNAL_LEVEL3_5GHZ "INSSignalLevel3_5GHz" +#define CONF_INS_SIGNAL_LEVEL3_24GHZ "INSSignalLevel3_24GHz" +#endif static const char *supported_options[] = { CONF_BG_SCAN, @@ -179,9 +309,53 @@ static const char *supported_options[] = { CONF_AUTO_CONNECT_ROAMING_SERVICES, CONF_ACD, CONF_USE_GATEWAYS_AS_TIMESERVERS, +#if defined TIZEN_EXT + CONF_CELLULAR_INTERFACE, + CONF_TIZEN_TV_EXT, + CONF_ENABLE_AUTO_IP, + CONF_GLOBAL_NAMESERVER, + CONF_CONNMAN_SUPPLICANT_DEBUG, + CONF_CONNMAN_WIFI_DEF_IFNAME, + CONF_CONNMAN_FILE_LOG, + CONF_CONNMAN_DLOG_LOG, + CONF_CONNMAN_SIMPLIFIED_LOG, + CONF_CONNMAN_WIFI_ROAM_SCAN, + CONF_CONNMAN_WIFI_ROAM, +#endif NULL }; +#if defined TIZEN_EXT +static const char *supported_ins_options[] = { + /* BSSID */ + CONF_INS_PREFERRED_FREQ_BSSID, + CONF_INS_PREFERRED_FREQ_BSSID_SCORE, + CONF_INS_LAST_CONNECTED_BSSID, + CONF_INS_LAST_CONNECTED_BSSID_SCORE, + CONF_INS_ASSOC_REJECT, + CONF_INS_ASSOC_REJECT_SCORE, + CONF_INS_SIGNAL_BSSID, + /* SSID */ + CONF_INS_LAST_USER_SELECTION, + CONF_INS_LAST_USER_SELECTION_TIME, + CONF_INS_LAST_USER_SELECTION_SCORE, + CONF_INS_LAST_CONNECTED, + CONF_INS_LAST_CONNECTED_SCORE, + CONF_INS_PREFERRED_FREQ, + CONF_INS_PREFERRED_FREQ_SCORE, + CONF_INS_SECURITY_PRIORITY, + CONF_INS_SECURITY_PRIORITY_COUNT, + CONF_INS_SECURITY_PRIORITY_SCORE, + CONF_INS_SIGNAL, + CONF_INS_INTERNET, + CONF_INS_INTERNET_SCORE, + /* Common */ + CONF_INS_SIGNAL_LEVEL3_5GHZ, + CONF_INS_SIGNAL_LEVEL3_24GHZ, + NULL +}; +#endif + static GKeyFile *load_config(const char *file) { GError *err = NULL; @@ -265,7 +439,12 @@ static void check_config(GKeyFile *config) keys = g_key_file_get_groups(config, NULL); for (j = 0; keys && keys[j]; j++) { +#if defined TIZEN_EXT + if (g_strcmp0(keys[j], "General") != 0 && + g_strcmp0(keys[j], "INS") != 0) +#else if (g_strcmp0(keys[j], "General") != 0) +#endif connman_warn("Unknown group %s in %s", keys[j], MAINFILE); } @@ -291,8 +470,294 @@ static void check_config(GKeyFile *config) } g_strfreev(keys); + +#if defined TIZEN_EXT + keys = g_key_file_get_keys(config, "INS", NULL, NULL); + + for (j = 0; keys && keys[j]; j++) { + bool found; + int i; + + found = false; + for (i = 0; supported_ins_options[i]; i++) { + if (g_strcmp0(keys[j], supported_ins_options[i]) == 0) { + found = true; + break; + } + } + if (!found && !supported_ins_options[i]) + connman_warn("Unknown option %s in %s", + keys[j], MAINFILE); + } + + g_strfreev(keys); +#endif } +#if defined TIZEN_EXT +static void check_Tizen_INS_configuration(GKeyFile *config) +{ + GError *error = NULL; + char *ins_preferred_freq_bssid; + char *ins_preferred_freq; + char **ins_security_priority; + bool boolean; + int integer; + gsize len; + + ins_preferred_freq_bssid = __connman_config_get_string(config, "INS", + CONF_INS_PREFERRED_FREQ_BSSID, &error); + if (!error) + connman_ins_settings.ins_preferred_freq_bssid = ins_preferred_freq_bssid; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_PREFERRED_FREQ_BSSID_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_preferred_freq_bssid_score = integer; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "INS", + CONF_INS_LAST_CONNECTED_BSSID, &error); + if (!error) + connman_ins_settings.ins_last_connected_bssid = boolean; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_LAST_CONNECTED_BSSID_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_last_connected_bssid_score = integer; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "INS", + CONF_INS_ASSOC_REJECT, &error); + if (!error) + connman_ins_settings.ins_assoc_reject = boolean; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_ASSOC_REJECT_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_assoc_reject_score = integer; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "INS", + CONF_INS_SIGNAL_BSSID, &error); + if (!error) + connman_ins_settings.ins_signal_bssid = boolean; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "INS", + CONF_INS_LAST_USER_SELECTION, &error); + if (!error) + connman_ins_settings.ins_last_user_selection = boolean; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_LAST_USER_SELECTION_TIME, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_last_user_selection_time = integer; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_LAST_USER_SELECTION_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_last_user_selection_score = integer; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "INS", + CONF_INS_LAST_CONNECTED, &error); + if (!error) + connman_ins_settings.ins_last_connected = boolean; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_LAST_CONNECTED_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_last_connected_score = integer; + + g_clear_error(&error); + + ins_preferred_freq = __connman_config_get_string(config, "INS", + CONF_INS_PREFERRED_FREQ, &error); + if (!error) + connman_ins_settings.ins_preferred_freq = ins_preferred_freq; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_PREFERRED_FREQ_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_preferred_freq_score = integer; + + g_clear_error(&error); + + ins_security_priority = g_key_file_get_string_list(config, "INS", + CONF_INS_SECURITY_PRIORITY, &len, &error); + + if (error == NULL) { + connman_ins_settings.ins_security_priority = ins_security_priority; + connman_ins_settings.ins_security_priority_count = len; + } + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_SECURITY_PRIORITY_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_security_priority_score = integer; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "INS", + CONF_INS_SIGNAL, &error); + if (!error) + connman_ins_settings.ins_signal = boolean; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "INS", + CONF_INS_INTERNET, &error); + if (!error) + connman_ins_settings.ins_internet = boolean; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_INTERNET_SCORE, &error); + if (!error && integer >= 0) + connman_ins_settings.ins_internet_score = integer; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_SIGNAL_LEVEL3_5GHZ, &error); + if (!error) + connman_ins_settings.ins_signal_level3_5ghz = integer; + + g_clear_error(&error); + + integer = g_key_file_get_integer(config, "INS", + CONF_INS_SIGNAL_LEVEL3_24GHZ, &error); + if (!error) + connman_ins_settings.ins_signal_level3_24ghz = integer; + + g_clear_error(&error); +} + +static void check_Tizen_configuration(GKeyFile *config) +{ + GError *error = NULL; + char **cellular_interfaces; + char *global_nameserver; + char *default_wifi_ifname; + bool boolean; + gsize len; + + cellular_interfaces = g_key_file_get_string_list(config, "General", + CONF_CELLULAR_INTERFACE, &len, &error); + + if (error == NULL) + connman_settings.cellular_interfaces = cellular_interfaces; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "General", + CONF_TIZEN_TV_EXT, &error); + if (!error) + connman_settings.tizen_tv_extension = boolean; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "General", + CONF_ENABLE_AUTO_IP, &error); + if (!error) + connman_settings.auto_ip = boolean; + + g_clear_error(&error); + + global_nameserver = __connman_config_get_string(config, "General", + CONF_GLOBAL_NAMESERVER, &error); + if (!error) + connman_settings.global_nameserver = global_nameserver; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "General", + CONF_CONNMAN_SUPPLICANT_DEBUG, &error); + if (!error) + connman_settings.supplicant_debug = boolean; + + g_clear_error(&error); + + default_wifi_ifname = __connman_config_get_string(config, "General", + CONF_CONNMAN_WIFI_DEF_IFNAME, &error); + if (!error) + connman_settings.def_wifi_ifname = default_wifi_ifname; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "General", + CONF_CONNMAN_FILE_LOG, &error); + if (!error) + connman_settings.file_log = boolean; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "General", + CONF_CONNMAN_DLOG_LOG, &error); + if (!error) + connman_settings.dlog_log = boolean; + + g_clear_error(&error); + + boolean = __connman_config_get_bool(config, "General", + CONF_CONNMAN_SIMPLIFIED_LOG, &error); + if (!error) + connman_settings.simple_log = boolean; + + boolean = __connman_config_get_bool(config, "General", + CONF_CONNMAN_WIFI_ROAM_SCAN, &error); + if (!error) + connman_settings.wifi_roam_scan = boolean; + + boolean = __connman_config_get_bool(config, "General", + CONF_CONNMAN_WIFI_ROAM, &error); + if (!error) + connman_settings.wifi_roam = boolean; + + g_clear_error(&error); + + check_Tizen_INS_configuration(config); +} + +static void set_nofile_inc(void) +{ + int err; + struct rlimit rlim; + + rlim.rlim_cur = 8192; + rlim.rlim_max = 8192; + + err = setrlimit(RLIMIT_NOFILE, &rlim); + if (err) + DBG("fail to increase FILENO err(%d)", err); + + return; +} +#endif + static void parse_config(GKeyFile *config) { GError *error = NULL; @@ -341,6 +806,8 @@ static void parse_config(GKeyFile *config) connman_settings.auto_connect = parse_service_types(default_auto_connect, CONF_ARRAY_SIZE(default_auto_connect)); + g_strfreev(str_list); + g_clear_error(&error); str_list = __connman_config_get_string_list(config, "General", @@ -531,18 +998,30 @@ static void parse_config(GKeyFile *config) connman_settings.use_gateways_as_timeservers = boolean; g_clear_error(&error); + +#if defined TIZEN_EXT + check_Tizen_configuration(config); +#endif } static int config_init(const char *file) { GKeyFile *config; +#if defined TIZEN_EXT + set_nofile_inc(); +#endif config = load_config(file); check_config(config); parse_config(config); if (config) g_key_file_free(config); +#if defined TIZEN_EXT + set_simple_log_option(connman_settings.simple_log); + set_dlog_logging_option(connman_settings.dlog_log); + set_file_logging_option(connman_settings.file_log); +#endif return 0; } @@ -715,6 +1194,19 @@ char *connman_setting_get_string(const char *key) return option_wifi; } +#if defined TIZEN_EXT + if (g_str_equal(key, CONF_GLOBAL_NAMESERVER)) + return connman_settings.global_nameserver; + + if (g_str_equal(key, CONF_INS_PREFERRED_FREQ_BSSID)) + return connman_ins_settings.ins_preferred_freq_bssid; + + if (g_str_equal(key, CONF_INS_PREFERRED_FREQ)) + return connman_ins_settings.ins_preferred_freq; + + if (g_str_equal(key, CONF_CONNMAN_WIFI_DEF_IFNAME)) + return connman_settings.def_wifi_ifname; +#endif return NULL; } @@ -753,6 +1245,50 @@ bool connman_setting_get_bool(const char *key) if (g_str_equal(key, CONF_USE_GATEWAYS_AS_TIMESERVERS)) return connman_settings.use_gateways_as_timeservers; +#if defined TIZEN_EXT + if (g_str_equal(key, CONF_ENABLE_AUTO_IP)) + return connman_settings.auto_ip; + + if (g_str_equal(key, CONF_CONNMAN_SUPPLICANT_DEBUG)) + return connman_settings.supplicant_debug; + + if (g_str_equal(key, CONF_CONNMAN_FILE_LOG)) + return connman_settings.file_log; + + if (g_str_equal(key, CONF_CONNMAN_DLOG_LOG)) + return connman_settings.dlog_log; + + if (g_str_equal(key, CONF_CONNMAN_SIMPLIFIED_LOG)) + return connman_settings.simple_log; + + if (g_str_equal(key, CONF_CONNMAN_WIFI_ROAM_SCAN)) + return connman_settings.wifi_roam_scan; + + if (g_str_equal(key, CONF_CONNMAN_WIFI_ROAM)) + return connman_settings.wifi_roam; + + if (g_str_equal(key, CONF_INS_LAST_CONNECTED_BSSID)) + return connman_ins_settings.ins_last_connected_bssid; + + if (g_str_equal(key, CONF_INS_ASSOC_REJECT)) + return connman_ins_settings.ins_assoc_reject; + + if (g_str_equal(key, CONF_INS_SIGNAL_BSSID)) + return connman_ins_settings.ins_signal_bssid; + + if (g_str_equal(key, CONF_INS_LAST_USER_SELECTION)) + return connman_ins_settings.ins_last_user_selection; + + if (g_str_equal(key, CONF_INS_LAST_CONNECTED)) + return connman_ins_settings.ins_last_connected; + + if (g_str_equal(key, CONF_INS_SIGNAL)) + return connman_ins_settings.ins_signal; + + if (g_str_equal(key, CONF_INS_INTERNET)) + return connman_ins_settings.ins_internet; +#endif + return false; } @@ -764,9 +1300,53 @@ unsigned int connman_setting_get_uint(const char *key) if (g_str_equal(key, CONF_ONLINE_CHECK_MAX_INTERVAL)) return connman_settings.online_check_max_interval; +#if defined TIZEN_EXT + if (g_str_equal(key, CONF_INS_PREFERRED_FREQ_BSSID_SCORE)) + return connman_ins_settings.ins_preferred_freq_bssid_score; + + if (g_str_equal(key, CONF_INS_LAST_CONNECTED_BSSID_SCORE)) + return connman_ins_settings.ins_last_connected_bssid_score; + + if (g_str_equal(key, CONF_INS_ASSOC_REJECT_SCORE)) + return connman_ins_settings.ins_assoc_reject_score; + + if (g_str_equal(key, CONF_INS_LAST_USER_SELECTION_TIME)) + return connman_ins_settings.ins_last_user_selection_time; + + if (g_str_equal(key, CONF_INS_SECURITY_PRIORITY_COUNT)) + return connman_ins_settings.ins_security_priority_count; + + if (g_str_equal(key, CONF_INS_LAST_USER_SELECTION_SCORE)) + return connman_ins_settings.ins_last_user_selection_score; + + if (g_str_equal(key, CONF_INS_LAST_CONNECTED_SCORE)) + return connman_ins_settings.ins_last_connected_score; + + if (g_str_equal(key, CONF_INS_PREFERRED_FREQ_SCORE)) + return connman_ins_settings.ins_preferred_freq_score; + + if (g_str_equal(key, CONF_INS_SECURITY_PRIORITY_SCORE)) + return connman_ins_settings.ins_security_priority_score; + + if (g_str_equal(key, CONF_INS_INTERNET_SCORE)) + return connman_ins_settings.ins_internet_score; +#endif return 0; } +#if defined TIZEN_EXT +int connman_setting_get_int(const char *key) +{ + if (g_str_equal(key, CONF_INS_SIGNAL_LEVEL3_5GHZ)) + return connman_ins_settings.ins_signal_level3_5ghz; + + if (g_str_equal(key, CONF_INS_SIGNAL_LEVEL3_24GHZ)) + return connman_ins_settings.ins_signal_level3_24ghz; + + return 0; +} +#endif + char **connman_setting_get_string_list(const char *key) { if (g_str_equal(key, CONF_PREF_TIMESERVERS)) @@ -781,6 +1361,16 @@ char **connman_setting_get_string_list(const char *key) if (g_str_equal(key, CONF_TETHERING_TECHNOLOGIES)) return connman_settings.tethering_technologies; +#if defined TIZEN_EXT + if (g_str_equal(key, CONF_CELLULAR_INTERFACE)) + return connman_settings.cellular_interfaces; +#endif + +#if defined TIZEN_EXT + if (g_str_equal(key, CONF_INS_SECURITY_PRIORITY)) + return connman_ins_settings.ins_security_priority; +#endif + return NULL; } @@ -876,6 +1466,21 @@ int main(int argc, char *argv[]) __connman_dbus_init(conn); +#if defined TIZEN_EXT + if (access(CONTAINER_FILE, F_OK) == 0) { + g_main_loop_run(main_loop); + + g_source_remove(signal); + dbus_connection_unref(conn); + g_main_loop_unref(main_loop); + + __connman_dbus_cleanup(); + __connman_log_cleanup(option_backtrace); + + return 0; + } +#endif + if (!option_config) config_init(CONFIGMAINFILE); else @@ -889,6 +1494,9 @@ int main(int argc, char *argv[]) __connman_service_init(); __connman_peer_service_init(); __connman_peer_init(); +#if defined TIZEN_EXT_WIFI_MESH + __connman_mesh_init(); +#endif /* TIZEN_EXT_WIFI_MESH */ __connman_provider_init(); __connman_network_init(); __connman_config_init(); @@ -904,7 +1512,11 @@ int main(int argc, char *argv[]) __connman_clock_init(); __connman_ipconfig_init(); +#if defined TIZEN_EXT + __connman_rtnl_init(GIO_SOCKET_RETRY_COUNT); +#else /* TIZEN_EXT */ __connman_rtnl_init(); +#endif /* TIZEN_EXT */ __connman_task_init(); __connman_proxy_init(); __connman_detect_init(); @@ -920,8 +1532,10 @@ int main(int argc, char *argv[]) __connman_dhcpv6_init(); __connman_wpad_init(); __connman_wispr_init(); +#if !defined TIZEN_EXT __connman_rfkill_init(); __connman_machine_init(); +#endif g_free(option_config); g_free(option_device); @@ -933,8 +1547,10 @@ int main(int argc, char *argv[]) g_source_remove(signal); +#if !defined TIZEN_EXT __connman_machine_cleanup(); __connman_rfkill_cleanup(); +#endif __connman_wispr_cleanup(); __connman_wpad_cleanup(); __connman_dhcpv6_cleanup(); @@ -959,6 +1575,9 @@ int main(int argc, char *argv[]) __connman_firewall_cleanup(); __connman_peer_service_cleanup(); __connman_peer_cleanup(); +#if defined TIZEN_EXT_WIFI_MESH + __connman_mesh_cleanup(); +#endif /* TIZEN_EXT_WIFI_MESH */ __connman_ippool_cleanup(); __connman_device_cleanup(); __connman_network_cleanup(); @@ -990,6 +1609,13 @@ int main(int argc, char *argv[]) g_strfreev(connman_settings.tethering_technologies); g_free(connman_settings.vendor_class_id); +#if defined TIZEN_EXT + g_free(connman_ins_settings.ins_preferred_freq_bssid); + g_free(connman_ins_settings.ins_preferred_freq); + if (connman_ins_settings.ins_security_priority) + g_strfreev(connman_ins_settings.ins_security_priority); +#endif + g_free(option_debug); g_free(option_wifi);