summaryrefslogtreecommitdiff
path: root/src/service.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/service.c')
-rwxr-xr-xsrc/service.c310
1 files changed, 154 insertions, 156 deletions
diff --git a/src/service.c b/src/service.c
index bbb639a5..bf5c11be 100755
--- a/src/service.c
+++ b/src/service.c
@@ -82,14 +82,11 @@ struct saved_profiles {
GTimeVal modified;
gchar *profile_name;
};
-#endif
-#if defined TIZEN_EXT_INS
+
static unsigned char invalid_bssid[WIFI_BSSID_LEN_MAX] = {
0x00, 0x00, 0x00, 0x00, 0x00, 0x00
};
-#endif
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
enum connman_ins_preferred_freq {
CONNMAN_INS_PREFERRED_FREQ_UNKNOWN,
CONNMAN_INS_PREFERRED_FREQ_24GHZ,
@@ -115,7 +112,7 @@ struct connman_ins_settings {
};
static struct connman_ins_settings ins_settings;
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
struct connman_stats {
bool valid;
@@ -237,12 +234,10 @@ struct connman_service {
enum connman_dnsconfig_method dns_config_method_ipv4;
enum connman_dnsconfig_method dns_config_method_ipv6;
-#endif
-#if defined TIZEN_EXT
+
char *connector;
char *c_sign_key;
char *net_access_key;
-#if defined TIZEN_EXT_INS
unsigned char last_connected_bssid[WIFI_BSSID_LEN_MAX];
bool is_internet_connection;
int assoc_reject_count;
@@ -252,7 +247,6 @@ struct connman_service {
int score_security_priority;
int score_internet_connection;
int score_strength;
-#endif
int ins_score;
#endif
#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
@@ -830,7 +824,7 @@ static int connman_service_set_eapol_property(struct connman_service *service,
}
#endif
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
static void save_assoc_reject(gpointer key, gpointer value, gpointer user_data)
{
struct assoc_reject_data *assoc_rd = value;
@@ -1063,7 +1057,7 @@ done:
g_key_file_free(keyfile);
return err;
}
-#endif /* defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
static int service_load(struct connman_service *service)
{
@@ -1074,7 +1068,7 @@ static int service_load(struct connman_service *service)
bool autoconnect;
unsigned int ssid_len;
int err = 0;
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
bool internet_connection;
#endif
#if defined TIZEN_EXT && defined TIZEN_EXT_EAP_ON_ETHERNET
@@ -1164,45 +1158,47 @@ static int service_load(struct connman_service *service)
g_free(hex_ssid);
}
-#if defined TIZEN_EXT_INS
- /* Last connected BSSID */
- if (service->network) {
- gchar *bssid_str;
- unsigned char last_connected_bssid[WIFI_BSSID_LEN_MAX];
- char **str_list;
- unsigned int i;
+#if defined TIZEN_EXT
+ if (TIZEN_INS_ENABLED) {
+ /* Last connected BSSID */
+ if (service->network) {
+ gchar *bssid_str;
+ unsigned char last_connected_bssid[WIFI_BSSID_LEN_MAX];
+ char **str_list;
+ unsigned int i;
- bssid_str = g_key_file_get_string(keyfile,
- service->identifier, "LastConnectedBSSID", NULL);
+ bssid_str = g_key_file_get_string(keyfile,
+ service->identifier, "LastConnectedBSSID", NULL);
- if (bssid_str) {
- str_list = g_strsplit(bssid_str, ":", 0);
+ if (bssid_str) {
+ str_list = g_strsplit(bssid_str, ":", 0);
- if (str_list) {
- for (i = 0; i < WIFI_BSSID_LEN_MAX; i++)
- last_connected_bssid[i] = strtol(str_list[i], NULL, 16);
+ if (str_list) {
+ for (i = 0; i < WIFI_BSSID_LEN_MAX; i++)
+ last_connected_bssid[i] = strtol(str_list[i], NULL, 16);
- memcpy(service->last_connected_bssid,
- last_connected_bssid, WIFI_BSSID_LEN_MAX);
+ memcpy(service->last_connected_bssid,
+ last_connected_bssid, WIFI_BSSID_LEN_MAX);
- connman_network_set_last_connected_bssid(service->network,
- last_connected_bssid);
+ connman_network_set_last_connected_bssid(service->network,
+ last_connected_bssid);
- g_strfreev(str_list);
- }
+ g_strfreev(str_list);
+ }
- g_free(bssid_str);
+ g_free(bssid_str);
+ }
}
- }
- /* Internet connection */
- internet_connection = g_key_file_get_boolean(keyfile,
- service->identifier, "InternetConnection", &error);
- if (!error)
- service->is_internet_connection = internet_connection;
+ /* Internet connection */
+ internet_connection = g_key_file_get_boolean(keyfile,
+ service->identifier, "InternetConnection", &error);
+ if (!error)
+ service->is_internet_connection = internet_connection;
- g_clear_error(&error);
-#endif /* defined TIZEN_EXT_INS */
+ g_clear_error(&error);
+ }
+#endif /* defined TIZEN_EXT */
/* fall through */
case CONNMAN_SERVICE_TYPE_GADGET:
@@ -1479,7 +1475,7 @@ static int service_save(struct connman_service *service)
if (service->network) {
const unsigned char *ssid;
unsigned int ssid_len = 0;
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
GHashTable *assoc_reject_table;
#endif
@@ -1511,69 +1507,70 @@ static int service_save(struct connman_service *service)
g_key_file_set_integer(keyfile, service->identifier,
"Frequency", freq);
-#if defined TIZEN_EXT_INS
- /* Last connected BSSID */
- if (memcmp(service->last_connected_bssid, invalid_bssid, WIFI_BSSID_LEN_MAX)) {
- char *identifier = service->identifier;
- GString *bssid_str;
- unsigned int i;
+#if defined TIZEN_EXT
+ if (TIZEN_INS_ENABLED) {
+ /* Last connected BSSID */
+ if (memcmp(service->last_connected_bssid, invalid_bssid, WIFI_BSSID_LEN_MAX)) {
+ char *identifier = service->identifier;
+ GString *bssid_str;
+ unsigned int i;
- bssid_str = g_string_sized_new(18);
- if (!bssid_str) {
- err = -ENOMEM;
- goto done;
- }
+ bssid_str = g_string_sized_new(18);
+ if (!bssid_str) {
+ err = -ENOMEM;
+ goto done;
+ }
- for (i = 0; i < WIFI_BSSID_LEN_MAX; i++) {
- g_string_append_printf(bssid_str,
- "%02x", service->last_connected_bssid[i]);
- if (i < WIFI_BSSID_LEN_MAX - 1)
- g_string_append(bssid_str, ":");
- }
+ for (i = 0; i < WIFI_BSSID_LEN_MAX; i++) {
+ g_string_append_printf(bssid_str,
+ "%02x", service->last_connected_bssid[i]);
+ if (i < WIFI_BSSID_LEN_MAX - 1)
+ g_string_append(bssid_str, ":");
+ }
- g_key_file_set_string(keyfile, identifier,
+ g_key_file_set_string(keyfile, identifier,
"LastConnectedBSSID", bssid_str->str);
- DBG("last connected bssid[%s]", bssid_str->str);
+ DBG("last connected bssid[%s]", bssid_str->str);
- g_string_free(bssid_str, TRUE);
- }
-
- /* Assoc reject */
- assoc_reject_table = connman_network_get_assoc_reject_table(service->network);
- if (assoc_reject_table && g_hash_table_size(assoc_reject_table) > 0) {
- GString *assoc_reject_str;
- char **assoc_reject_list;
- guint assoc_reject_len;
-
- assoc_reject_str = g_string_new(NULL);
- if (!assoc_reject_str) {
- err = -ENOMEM;
- goto done;
+ g_string_free(bssid_str, TRUE);
}
- g_hash_table_foreach(assoc_reject_table, save_assoc_reject, assoc_reject_str);
+ /* Assoc reject */
+ assoc_reject_table = connman_network_get_assoc_reject_table(service->network);
+ if (assoc_reject_table && g_hash_table_size(assoc_reject_table) > 0) {
+ GString *assoc_reject_str;
+ char **assoc_reject_list;
+ guint assoc_reject_len;
- assoc_reject_list = g_strsplit_set(assoc_reject_str->str, " ", 0);
- assoc_reject_len = g_strv_length(assoc_reject_list);
+ assoc_reject_str = g_string_new(NULL);
+ if (!assoc_reject_str) {
+ err = -ENOMEM;
+ goto done;
+ }
- g_key_file_set_string_list(keyfile, service->identifier,
- "AssocReject", (const gchar **)assoc_reject_list, assoc_reject_len);
+ g_hash_table_foreach(assoc_reject_table, save_assoc_reject, assoc_reject_str);
- DBG("assoc reject table [%d]", assoc_reject_len);
+ assoc_reject_list = g_strsplit_set(assoc_reject_str->str, " ", 0);
+ assoc_reject_len = g_strv_length(assoc_reject_list);
- g_strfreev(assoc_reject_list);
- g_string_free(assoc_reject_str, TRUE);
- } else
- g_key_file_remove_key(keyfile, service->identifier, "AssocReject", NULL);
+ g_key_file_set_string_list(keyfile, service->identifier,
+ "AssocReject", (const gchar **)assoc_reject_list, assoc_reject_len);
- /* Internet connection */
- g_key_file_set_boolean(keyfile, service->identifier,
- "InternetConnection", service->is_internet_connection);
+ DBG("assoc reject table [%d]", assoc_reject_len);
- DBG("internet connection [%s]", service->is_internet_connection ? "true" : "false");
+ g_strfreev(assoc_reject_list);
+ g_string_free(assoc_reject_str, TRUE);
+ } else
+ g_key_file_remove_key(keyfile, service->identifier, "AssocReject", NULL);
-#endif /* defined TIZEN_EXT_INS */
+ /* Internet connection */
+ g_key_file_set_boolean(keyfile, service->identifier,
+ "InternetConnection", service->is_internet_connection);
+
+ DBG("internet connection [%s]", service->is_internet_connection ? "true" : "false");
+ }
+#endif /* defined TIZEN_EXT */
}
/* fall through */
@@ -3155,33 +3152,32 @@ static void state_changed(struct connman_service *service)
#if defined TIZEN_EXT
static void connect_reason_changed(struct connman_service *service)
{
-#if defined TIZEN_EXT_INS
struct connman_device *device;
-#endif
+
if (!service->path)
return;
if (!allow_property_changed(service))
return;
-#if defined TIZEN_EXT_INS
- if (service->connect_reason == CONNMAN_SERVICE_CONNECT_REASON_USER) {
- device = connman_network_get_device(service->network);
- if (device) {
- bool need_save = false;
+ if (TIZEN_INS_ENABLED) {
+ if (service->connect_reason == CONNMAN_SERVICE_CONNECT_REASON_USER) {
+ device = connman_network_get_device(service->network);
+ if (device) {
+ bool need_save = false;
- need_save |= connman_device_set_last_user_selection_ident(device, service->identifier);
- need_save |= connman_device_set_last_user_selection_time(device, time(NULL));
+ need_save |= connman_device_set_last_user_selection_ident(device, service->identifier);
+ need_save |= connman_device_set_last_user_selection_time(device, time(NULL));
- DBG("last user selection ident[%s] time[%ld]",
- connman_device_get_last_user_selection_ident(device),
- connman_device_get_last_user_selection_time(device));
+ DBG("last user selection ident[%s] time[%ld]",
+ connman_device_get_last_user_selection_ident(device),
+ connman_device_get_last_user_selection_time(device));
- if (need_save)
- connman_device_save_last_user_selection(device);
+ if (need_save)
+ connman_device_save_last_user_selection(device);
+ }
}
}
-#endif
connman_dbus_property_changed_basic(service->path,
CONNMAN_SERVICE_INTERFACE,
@@ -3189,9 +3185,7 @@ static void connect_reason_changed(struct connman_service *service)
DBUS_TYPE_INT32,
&service->connect_reason);
}
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
-#if defined TIZEN_EXT
static void disconnection_requested_changed(struct connman_service *service)
{
dbus_bool_t disconnection_requested;
@@ -3275,7 +3269,7 @@ static void strength_changed(struct connman_service *service)
DBUS_TYPE_BYTE, &service->strength);
}
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
static bool update_last_connected_bssid(struct connman_service *service)
{
const unsigned char *last_connected_bssid;
@@ -4711,7 +4705,7 @@ static void append_properties(DBusMessageIter *dict, dbus_bool_t limited,
connman_network_append_acddbus(dict, service->network);
}
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
static void append_ins_bssid_info(DBusMessageIter *iter, void *user_data)
{
GSList *bssid_list = NULL;
@@ -4802,7 +4796,7 @@ static void append_ins_properties(DBusMessageIter *dict,
append_ins_bssid_info, service->network);
}
}
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
static void append_struct_service(DBusMessageIter *iter,
connman_dbus_append_cb_t function,
@@ -4841,7 +4835,7 @@ static void append_struct(gpointer value, gpointer user_data)
append_struct_service(iter, append_dict_properties, service);
}
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
static void append_dict_ins_properties(DBusMessageIter *dict, void *user_data)
{
struct connman_service *service = user_data;
@@ -4867,7 +4861,7 @@ void __connman_ins_list_struct(DBusMessageIter *iter)
{
g_list_foreach(service_list, append_ins_struct, iter);
}
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
void __connman_service_list_struct(DBusMessageIter *iter)
{
@@ -5122,7 +5116,7 @@ const char *connman_service_get_proxy_url(struct connman_service *service)
return service->pac;
}
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
void connman_service_set_internet_connection(struct connman_service *service,
bool internet_connection)
{
@@ -5144,9 +5138,7 @@ bool connman_service_get_internet_connection(struct connman_service *service)
return service->is_internet_connection;
}
-#endif
-#if defined TIZEN_EXT
DBusMessage *connman_service_create_dbus_service_reply(DBusMessage *msg,
struct connman_service *service)
{
@@ -7951,12 +7943,10 @@ static void service_initialize(struct connman_service *service)
service->wps = false;
service->wps_advertizing = false;
-#if defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
memset(service->last_connected_bssid, 0, WIFI_BSSID_LEN_MAX);
service->is_internet_connection = false;
service->assoc_reject_count = 0;
-#endif
-#if defined TIZEN_EXT
service->disconnection_requested = false;
service->storage_reload = false;
/*
@@ -8056,7 +8046,7 @@ void connman_service_unref_debug(struct connman_service *service,
g_hash_table_remove(service_hash, service->identifier);
}
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
static int calculate_score_last_user_selection(struct connman_service *service)
{
int score = 0;
@@ -8234,7 +8224,7 @@ static int calculate_score(struct connman_service *service)
service->ins_score = score;
return score;
}
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
static gint service_compare(gconstpointer a, gconstpointer b);
@@ -8295,13 +8285,13 @@ static gint service_compare(gconstpointer a, gconstpointer b)
struct connman_service *service_b = (void *) b;
enum connman_service_state state_a, state_b;
bool a_connected, b_connected;
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
int score_a;
int score_b;
gint strength = 0;
-#else /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#else /* defined TIZEN_EXT */
gint strength;
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
state_a = service_a->state;
state_b = service_b->state;
@@ -8415,21 +8405,24 @@ static gint service_compare(gconstpointer a, gconstpointer b)
return 1;
}
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
- score_a = calculate_score(service_a);
- score_b = calculate_score(service_b);
- if (score_b != score_a)
- return score_b - score_a;
- else if (score_b == score_a) {
- strength = (gint) service_b->strength - (gint) service_a->strength;
- if (strength)
- return strength;
+#if defined TIZEN_EXT
+ if (TIZEN_INS_ENABLED) {
+ score_a = calculate_score(service_a);
+ score_b = calculate_score(service_b);
+
+ if (score_b != score_a)
+ return score_b - score_a;
+ else if (score_b == score_a) {
+ strength = (gint) service_b->strength - (gint) service_a->strength;
+ if (strength)
+ return strength;
+ }
}
-#else /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#else /* defined TIZEN_EXT */
strength = (gint) service_b->strength - (gint) service_a->strength;
if (strength)
return strength;
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
return g_strcmp0(service_a->name, service_b->name);
}
@@ -9431,8 +9424,8 @@ static int service_indicate_state(struct connman_service *service)
single_connected_tech(service);
#endif
-#if defined TIZEN_EXT_INS
- if (service->type == CONNMAN_SERVICE_TYPE_WIFI)
+#if defined TIZEN_EXT
+ if (TIZEN_INS_ENABLED && service->type == CONNMAN_SERVICE_TYPE_WIFI)
connman_service_set_internet_connection(service, true);
#endif
break;
@@ -10587,11 +10580,13 @@ static int service_register(struct connman_service *service)
#if defined TIZEN_EXT
int ret;
service_load(service);
-#if defined TIZEN_EXT_INS
- ret = service_ext_load(service);
- if (ret == -ERANGE)
- service_ext_save(service);
-#endif /* defined TIZEN_EXT_INS */
+
+ if (TIZEN_INS_ENABLED) {
+ ret = service_ext_load(service);
+ if (ret == -ERANGE)
+ service_ext_save(service);
+ }
+
ret = __connman_config_provision_service(service);
if (ret < 0 && !simplified_log)
DBG("Failed to provision service");
@@ -11254,9 +11249,6 @@ void __connman_service_update_from_network(struct connman_network *network)
bool roaming;
const char *name;
bool stats_enable;
-#if defined TIZEN_EXT_INS
- bool need_save = false;
-#endif
service = connman_service_lookup_from_network(network);
if (!service)
@@ -11313,13 +11305,18 @@ roaming:
roaming_changed(service);
sorting:
-#if defined TIZEN_EXT_INS
- need_save |= update_last_connected_bssid(service);
- need_save |= update_assoc_reject(service);
- if (need_save) {
- g_get_current_time((GTimeVal *)&service->modified);
- service_ext_save(service);
- need_sort = true;
+#if defined TIZEN_EXT
+ if (TIZEN_INS_ENABLED) {
+ bool need_save = false;
+
+ need_save |= update_last_connected_bssid(service);
+ need_save |= update_assoc_reject(service);
+
+ if (need_save) {
+ g_get_current_time((GTimeVal *)&service->modified);
+ service_ext_save(service);
+ need_sort = true;
+ }
}
#endif
@@ -11505,7 +11502,7 @@ static struct connman_agent_driver agent_driver = {
.context_unref = agent_context_unref,
};
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
+#if defined TIZEN_EXT
static void ins_setting_init(void)
{
int i;
@@ -11596,7 +11593,7 @@ static void ins_setting_init(void)
DBG("signal_level3_5ghz [%d]", ins_settings.signal_level3_5ghz);
DBG("signal_level3_24ghz [%d]", ins_settings.signal_level3_24ghz);
}
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#endif /* defined TIZEN_EXT */
int __connman_service_init(void)
{
@@ -11627,9 +11624,10 @@ int __connman_service_init(void)
remove_unprovisioned_services();
-#if defined TIZEN_EXT && defined TIZEN_EXT_INS
- ins_setting_init();
-#endif /* defined TIZEN_EXT && defined TIZEN_EXT_INS */
+#if defined TIZEN_EXT
+ if (TIZEN_INS_ENABLED)
+ ins_setting_init();
+#endif /* defined TIZEN_EXT */
return 0;
}