diff --git a/src/device.c b/src/device.c
index 7aa752c..e7e70d3 100644
--- a/src/device.c
+++ b/src/device.c
{
struct btd_device *device = data;
+ if (device->vendor_src < 1 || device->vendor_src > 2)
+ return FALSE;
+
return !!device->vendor;
}
{
struct btd_device *device = data;
+ if (device->vendor_src < 1 || device->vendor_src > 2)
+ return FALSE;
+
if (!device->vendor)
return FALSE;
{
struct btd_device *device = data;
- return !!device->vendor_src;
+ if (device->vendor_src < 1 || device->vendor_src > 2)
+ return FALSE;
+
+ return TRUE;
}
static gboolean dev_property_get_vendor_src(const GDBusPropertyTable *property,
DBusMessageIter *iter, void *data)
{
struct btd_device *device = data;
+ const char *str;
- if (!device->vendor_src)
+ switch (device->vendor_src) {
+ case 1:
+ str = "bluetooth";
+ break;
+ case 2:
+ str = "usb";
+ break;
+ default:
return FALSE;
+ }
+
+ dbus_message_iter_append_basic(iter, DBUS_TYPE_STRING, &str);
- dbus_message_iter_append_basic(iter, DBUS_TYPE_UINT16,
- &device->vendor_src);
return TRUE;
}
{
struct btd_device *device = data;
+ if (device->vendor_src < 1 || device->vendor_src > 2)
+ return FALSE;
+
return !!device->product;
}
{
struct btd_device *device = data;
+ if (device->vendor_src < 1 || device->vendor_src > 2)
+ return FALSE;
+
if (!device->product)
return FALSE;
{
struct btd_device *device = data;
+ if (device->vendor_src < 1 || device->vendor_src > 2)
+ return FALSE;
+
return !!device->version;
}
{
struct btd_device *device = data;
+ if (device->vendor_src < 1 || device->vendor_src > 2)
+ return FALSE;
+
if (!device->version)
return FALSE;
dev_property_exists_icon },
{ "Vendor", "q", dev_property_get_vendor, NULL,
dev_property_exists_vendor },
- { "VendorSource", "q", dev_property_get_vendor_src, NULL,
+ { "VendorSource", "s", dev_property_get_vendor_src, NULL,
dev_property_exists_vendor_src },
{ "Product", "q", dev_property_get_product, NULL,
dev_property_exists_product },