diff options
Diffstat (limited to 'src/service.c')
-rwxr-xr-x | src/service.c | 72 |
1 files changed, 36 insertions, 36 deletions
diff --git a/src/service.c b/src/service.c index 1eae3807..34a37a7b 100755 --- a/src/service.c +++ b/src/service.c @@ -4085,8 +4085,10 @@ static void set_error(struct connman_service *service, if (!service->path) return; +#if !defined TIZEN_EXT if (!allow_property_changed(service)) return; +#endif str = error2string(service->error); @@ -4619,8 +4621,12 @@ static DBusMessage *connect_service(DBusConnection *conn, DBusMessage *msg, void *user_data) { struct connman_service *service = user_data; +#if defined TIZEN_EXT + int err = 0; +#else int index, err = 0; GList *list; +#endif DBG("service %p", service); @@ -4660,6 +4666,7 @@ static DBusMessage *connect_service(DBusConnection *conn, } } +#if !defined TIZEN_EXT index = __connman_service_get_index(service); for (list = service_list; list; list = list->next) { @@ -4685,6 +4692,7 @@ static DBusMessage *connect_service(DBusConnection *conn, } if (err == -EINPROGRESS) return __connman_error_operation_timeout(msg); +#endif service->ignore = false; @@ -6002,34 +6010,6 @@ static int check_wpspin(struct connman_service *service, const char *wpspin) return 0; } -#if defined TIZEN_EXT -static int __connman_service_connect_hidden(struct connman_service *service, - const char *name, int name_len, - const char *identity, const char *passphrase, void *user_data) -{ - GList *list; - - for (list = service_list; list; list = list->next) { - struct connman_service *target = list->data; - const char *target_ssid = NULL; - unsigned int target_ssid_len = 0; - - if (service->network != NULL && - service->security == target->security) { - target_ssid = connman_network_get_blob(service->network, - "WiFi.SSID", &target_ssid_len); - if (target_ssid_len == name_len && - memcmp(target_ssid, name, name_len) == 0) { - return connman_network_connect_hidden(service->network, - (char *)identity, (char *)passphrase, user_data); - } - } - } - - return -ENOENT; -} -#endif - static void request_input_cb(struct connman_service *service, bool values_received, const char *name, int name_len, @@ -6062,14 +6042,6 @@ static void request_input_cb(struct connman_service *service, } if (service->hidden && name_len > 0 && name_len <= 32) { -#if defined TIZEN_EXT - /* TIZEN already has Wi-Fi hidden scan before this hidden connection */ - err = __connman_service_connect_hidden(service, name, name_len, - identity, passphrase, user_data); - if (err == 0 || err == -EALREADY || err == -EINPROGRESS) - return; -#endif - device = connman_network_get_device(service->network); security = connman_network_get_string(service->network, "WiFi.Security"); @@ -6563,6 +6535,7 @@ static int service_indicate_state(struct connman_service *service) #if defined TIZEN_EXT if (service->type == CONNMAN_SERVICE_TYPE_WIFI) service->order = 5; + __connman_service_auto_connect(CONNMAN_SERVICE_CONNECT_REASON_AUTO); #endif if (service->connect_reason == CONNMAN_SERVICE_CONNECT_REASON_USER && connman_agent_report_error(service, service->path, @@ -7065,6 +7038,33 @@ static int service_connect(struct connman_service *service) if (service->hidden) return -EPERM; +#if defined TIZEN_EXT + GList *list; + int index; + + index = __connman_service_get_index(service); + + for (list = service_list; list; list = list->next) { + struct connman_service *temp = list->data; + + if (service->type == CONNMAN_SERVICE_TYPE_CELLULAR) + break; + + if (!is_connecting(temp) && !is_connected(temp)) + break; + + if (service == temp) + continue; + + if (service->type != temp->type) + continue; + + if (__connman_service_get_index(temp) == index && + __connman_service_disconnect(temp) == -EINPROGRESS) + return -EINPROGRESS; + } +#endif + switch (service->type) { case CONNMAN_SERVICE_TYPE_UNKNOWN: case CONNMAN_SERVICE_TYPE_SYSTEM: |