- enum connman_service_type type;
- const char *str;
- int err;
-
- DBG("conn %p", conn);
-
- if (technology_pending != NULL)
- return __connman_error_in_progress(msg);
-
- dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &str,
- DBUS_TYPE_INVALID);
-
- if (g_strcmp0(str, "ethernet") == 0)
- type = CONNMAN_SERVICE_TYPE_ETHERNET;
- else if (g_strcmp0(str, "wifi") == 0)
- type = CONNMAN_SERVICE_TYPE_WIFI;
- else if (g_strcmp0(str, "wimax") == 0)
- type = CONNMAN_SERVICE_TYPE_WIMAX;
- else if (g_strcmp0(str, "bluetooth") == 0)
- type = CONNMAN_SERVICE_TYPE_BLUETOOTH;
- else if (g_strcmp0(str, "cellular") == 0)
- type = CONNMAN_SERVICE_TYPE_CELLULAR;
- else
- return __connman_error_invalid_arguments(msg);
-
- if (__connman_notifier_is_registered(type) == FALSE)
- return __connman_error_not_registered(msg);
-
- if (__connman_notifier_is_enabled(type) == TRUE)
- return __connman_error_already_enabled(msg);
-
- technology_type = type;
- technology_enabled = TRUE;
- technology_pending = dbus_message_ref(msg);
-
- err = __connman_device_enable_technology(type);
- if (err < 0 && err != -EINPROGRESS)
- technology_reply(-err);
- else
- technology_timeout = g_timeout_add_seconds(15,
- technology_abort, NULL);
-
- return NULL;
-}
-
-static DBusMessage *disable_technology(DBusConnection *conn,
- DBusMessage *msg, void *data)
-{
- enum connman_service_type type;
- const char *str;
- int err;
-
- DBG("conn %p", conn);
-
- if (technology_pending != NULL)
- return __connman_error_in_progress(msg);
-
- dbus_message_get_args(msg, NULL, DBUS_TYPE_STRING, &str,
- DBUS_TYPE_INVALID);
-
- if (g_strcmp0(str, "ethernet") == 0)
- type = CONNMAN_SERVICE_TYPE_ETHERNET;
- else if (g_strcmp0(str, "wifi") == 0)
- type = CONNMAN_SERVICE_TYPE_WIFI;
- else if (g_strcmp0(str, "wimax") == 0)
- type = CONNMAN_SERVICE_TYPE_WIMAX;
- else if (g_strcmp0(str, "bluetooth") == 0)
- type = CONNMAN_SERVICE_TYPE_BLUETOOTH;
- else if (g_strcmp0(str, "cellular") == 0)
- type = CONNMAN_SERVICE_TYPE_CELLULAR;
- else
- return __connman_error_invalid_arguments(msg);
-
- if (__connman_notifier_is_registered(type) == FALSE)
- return __connman_error_not_registered(msg);
-
- if (__connman_notifier_is_enabled(type) == FALSE)
- return __connman_error_already_disabled(msg);
-
- technology_type = type;
- technology_enabled = FALSE;
- technology_pending = dbus_message_ref(msg);
-
- err = __connman_device_disable_technology(type);
- if (err < 0 && err != -EINPROGRESS)
- technology_reply(-err);
- else
- technology_timeout = g_timeout_add_seconds(10,
- technology_abort, NULL);
-
- return NULL;