{
if (VIR_STRDUP(*value,
udevGetDeviceProperty(udev_device, property_key)) < 0)
- return PROPERTY_ERROR;
+ return -1;
- return *value == NULL ? PROPERTY_MISSING : PROPERTY_FOUND;
+ return 0;
}
{
virNodeDevCapDataPtr data = &def->caps->data;
int ret = -1;
- int err;
if (udevGetUintProperty(device,
"BUSNUM",
goto out;
}
- err = udevGetStringProperty(device,
- "ID_VENDOR_FROM_DATABASE",
- &data->usb_dev.vendor_name);
- if (err == PROPERTY_ERROR)
+ if (udevGetStringProperty(device,
+ "ID_VENDOR_FROM_DATABASE",
+ &data->usb_dev.vendor_name) < 0)
+ goto out;
+
+ if (!data->usb_dev.vendor_name &&
+ udevGetStringSysfsAttr(device,
+ "manufacturer",
+ &data->usb_dev.vendor_name) == PROPERTY_ERROR)
goto out;
- if (err == PROPERTY_MISSING) {
- if (udevGetStringSysfsAttr(device,
- "manufacturer",
- &data->usb_dev.vendor_name) == PROPERTY_ERROR) {
- goto out;
- }
- }
if (udevGetUintProperty(device,
"ID_MODEL_ID",
goto out;
}
- err = udevGetStringProperty(device,
- "ID_MODEL_FROM_DATABASE",
- &data->usb_dev.product_name);
- if (err == PROPERTY_ERROR)
+ if (udevGetStringProperty(device,
+ "ID_MODEL_FROM_DATABASE",
+ &data->usb_dev.product_name) < 0)
+ goto out;
+
+ if (!data->usb_dev.product_name &&
+ udevGetStringSysfsAttr(device,
+ "product",
+ &data->usb_dev.product_name) == PROPERTY_ERROR)
goto out;
- if (err == PROPERTY_MISSING) {
- if (udevGetStringSysfsAttr(device,
- "product",
- &data->usb_dev.product_name) == PROPERTY_ERROR) {
- goto out;
- }
- }
if (udevGenerateDeviceName(device, def, NULL) != 0)
goto out;
if (udevGetStringProperty(device,
"INTERFACE",
- &data->net.ifname) == PROPERTY_ERROR) {
+ &data->net.ifname) < 0)
goto out;
- }
if (udevGetStringSysfsAttr(device,
"address",
VIR_NODE_DEV_CAP_STORAGE_REMOVABLE_MEDIA_AVAILABLE;
if (udevGetStringProperty(device, "ID_FS_LABEL",
- &data->storage.media_label) == PROPERTY_ERROR) {
+ &data->storage.media_label) < 0)
goto out;
- }
if (udevGetUint64SysfsAttr(device,
"size",
if (VIR_STRDUP(data->storage.block, devnode) < 0)
goto out;
- if (udevGetStringProperty(device,
- "ID_BUS",
- &data->storage.bus) == PROPERTY_ERROR) {
+ if (udevGetStringProperty(device, "ID_BUS", &data->storage.bus) < 0)
goto out;
- }
- if (udevGetStringProperty(device,
- "ID_SERIAL",
- &data->storage.serial) == PROPERTY_ERROR) {
+ if (udevGetStringProperty(device, "ID_SERIAL", &data->storage.serial) < 0)
goto out;
- }
+
if (udevGetStringSysfsAttr(device,
"device/vendor",
&data->storage.vendor) == PROPERTY_ERROR) {
* expected, so I don't see a problem with not having a property
* for it. */
- if (udevGetStringProperty(device,
- "ID_TYPE",
- &data->storage.drive_type) != PROPERTY_FOUND ||
+ if (udevGetStringProperty(device, "ID_TYPE", &data->storage.drive_type) < 0)
+ goto out;
+
+ if (!data->storage.drive_type ||
STREQ(def->caps->data.storage.drive_type, "generic")) {
int val = 0;
const char *str = NULL;
udevProcessSCSIGeneric(struct udev_device *dev,
virNodeDeviceDefPtr def)
{
- if (udevGetStringProperty(dev,
- "DEVNAME",
- &def->caps->data.sg.path) != PROPERTY_FOUND)
+ if (udevGetStringProperty(dev, "DEVNAME", &def->caps->data.sg.path) < 0 ||
+ !def->caps->data.sg.path)
return -1;
if (udevGenerateDeviceName(dev, def, NULL) != 0)
*type = VIR_NODE_DEV_CAP_NET;
/* SCSI generic device doesn't set DEVTYPE property */
- if (udevGetStringProperty(device, "SUBSYSTEM", &subsystem) ==
- PROPERTY_FOUND &&
- STREQ(subsystem, "scsi_generic"))
+ if (udevGetStringProperty(device, "SUBSYSTEM", &subsystem) < 0)
+ return -1;
+
+ if (STREQ_NULLABLE(subsystem, "scsi_generic"))
*type = VIR_NODE_DEV_CAP_SCSI_GENERIC;
VIR_FREE(subsystem);
}
if (VIR_STRDUP(def->sysfs_path, udev_device_get_syspath(device)) < 0)
goto out;
- if (udevGetStringProperty(device,
- "DRIVER",
- &def->driver) == PROPERTY_ERROR) {
+ if (udevGetStringProperty(device, "DRIVER", &def->driver) < 0)
goto out;
- }
if (VIR_ALLOC(def->caps) != 0)
goto out;