mirror of
https://github.com/PixlOne/logiops.git
synced 2025-07-13 21:02:43 +08:00
Do not terminate on bad udev device
Skip the device in this case since this could occur if the device is removed. Fixes #373
This commit is contained in:
parent
be840b333a
commit
eb5b3ca481
@ -135,13 +135,17 @@ void DeviceMonitor::enumerate() {
|
|||||||
const char* name = udev_list_entry_get_name(udev_enum_entry);
|
const char* name = udev_list_entry_get_name(udev_enum_entry);
|
||||||
|
|
||||||
struct udev_device* device = udev_device_new_from_syspath(_udev_context, name);
|
struct udev_device* device = udev_device_new_from_syspath(_udev_context, name);
|
||||||
if (!device)
|
if (device) {
|
||||||
throw std::runtime_error("udev_device_new_from_syspath failed");
|
const char* dev_node_cstr = udev_device_get_devnode(device);
|
||||||
|
if (dev_node_cstr) {
|
||||||
|
const std::string dev_node {dev_node_cstr};
|
||||||
|
udev_device_unref(device);
|
||||||
|
|
||||||
std::string dev_node = udev_device_get_devnode(device);
|
_addHandler(dev_node);
|
||||||
udev_device_unref(device);
|
} else {
|
||||||
|
udev_device_unref(device);
|
||||||
_addHandler(dev_node);
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
udev_enumerate_unref(udev_enum);
|
udev_enumerate_unref(udev_enum);
|
||||||
|
Loading…
Reference in New Issue
Block a user