* equivalent). */
return sd_bus_error_setf(error, BUS_ERROR_DEVICE_IS_TAKEN, "Device already taken");
- r = session_device_new(s, dev, true, &sd);
+ r = session_device_new(s, dev, &sd);
if (r < 0)
return r;
- r = session_device_save(sd);
- if (r < 0)
- goto error;
-
r = sd_bus_reply_method_return(message, "hb", sd->fd, !sd->active);
if (r < 0)
- goto error;
-
- session_save(s);
- return 0;
+ session_device_free(sd);
-error:
- session_device_free(sd);
return r;
}
return sd_bus_error_setf(error, BUS_ERROR_DEVICE_NOT_TAKEN, "Device not taken");
session_device_free(sd);
- session_save(s);
-
return sd_bus_reply_method_return(message, NULL);
}