/** * connman_device_set_powered: * @device: device structure * @powered: powered state * * Change power state of device */ int connman_device_set_powered(struct connman_device *device, connman_bool_t powered) { enum connman_service_type type; DBG("driver %p powered %d", device, powered); if (device->powered == powered) return -EALREADY; clear_pending_trigger(device); device->powered_pending = PENDING_NONE; device->powered = powered; type = __connman_device_get_service_type(device); if (device->powered == FALSE) { __connman_technology_disabled(type); return 0; } __connman_technology_enabled(type); connman_device_set_disconnected(device, FALSE); device->scanning = FALSE; if (device->driver && device->driver->scan) device->driver->scan(device, NULL, 0, NULL, NULL, NULL); return 0; }
/** * connman_device_set_powered: * @device: device structure * @powered: powered state * * Change power state of device */ int connman_device_set_powered(struct connman_device *device, bool powered) { enum connman_service_type type; DBG("driver %p powered %d", device, powered); if (device->powered == powered) return -EALREADY; clear_pending_trigger(device); device->powered_pending = PENDING_NONE; device->powered = powered; type = __connman_device_get_service_type(device); if (!device->powered) { __connman_technology_disabled(type); return 0; } __connman_technology_enabled(type); connman_device_set_disconnected(device, false); device->scanning = false; if (device->driver && device->driver->scan) device->driver->scan(CONNMAN_SERVICE_TYPE_UNKNOWN, device, NULL, 0, NULL, NULL, NULL, NULL); return 0; }