connman_uint8_t strength;
connman_bool_t favorite;
connman_bool_t hidden;
+ connman_bool_t ignore;
GTimeVal modified;
unsigned int order;
char *name;
return NULL;
}
+static connman_bool_t is_ignore(struct connman_service *service)
+{
+ if (service->ignore == TRUE)
+ return TRUE;
+
+ if (service->state == CONNMAN_SERVICE_STATE_FAILURE)
+ return TRUE;
+
+ return FALSE;
+}
+
static void __connman_service_auto_connect(void)
{
struct connman_service *service;
service = g_sequence_get(iter);
- while (service->state == CONNMAN_SERVICE_STATE_FAILURE) {
+ while (is_ignore(service) == TRUE) {
iter = g_sequence_iter_next(iter);
if (g_sequence_iter_is_end(iter))
return;
if (service->pending != NULL)
return __connman_error_in_progress(msg);
+ service->ignore = FALSE;
+
service->pending = dbus_message_ref(msg);
err = __connman_service_connect(service);
return g_dbus_create_reply(msg, DBUS_TYPE_INVALID);
}
+ service->ignore = TRUE;
+
err = __connman_service_disconnect(service);
if (err < 0) {
if (err != -EINPROGRESS)
service->favorite = FALSE;
service->hidden = FALSE;
+ service->ignore = FALSE;
+
service->order = 0;
}