static const gchar *prv_get_device_id(const gchar *object, GError **error) { dld_device_t *device; device = dld_device_from_path(object, dld_upnp_get_device_udn_map(g_context.upnp)); if (!device) { DLEYNA_LOG_WARNING("Cannot locate device for %s", object); *error = g_error_new(DLEYNA_SERVER_ERROR, DLEYNA_ERROR_OBJECT_NOT_FOUND, "Cannot locate device corresponding to the specified path"); goto on_error; } return device->path; on_error: return NULL; }
static dld_device_t *prv_get_and_check_device(dld_upnp_t *upnp, dld_task_t *task, dld_upnp_task_complete_t cb) { dld_device_t *device; dld_async_task_t *cb_data = (dld_async_task_t *)task; device = dld_device_from_path(task->path, upnp->device_udn_map); if (!device) { DLEYNA_LOG_WARNING("Cannot locate device"); cb_data->cb = cb; cb_data->error = g_error_new(DLEYNA_SERVER_ERROR, DLEYNA_ERROR_OBJECT_NOT_FOUND, "Cannot locate a device for the " "specified object"); (void) g_idle_add(dld_async_task_complete, cb_data); } return device; }