Exemplo n.º 1
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,
						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;
}
Exemplo n.º 2
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;
}