diff --git a/ChangeLog.md b/ChangeLog.md index 74fec63..51927f0 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -22,6 +22,8 @@ The format is based upon [Keep a Changelog]. - Removed dependency on `rsync` during `make install` - Reduced default logging level of daemon to error only. See [#38](https://github.com/nirenjan/libx52/issues/38) +- Fixed daemon crash when disconnecting/reconnecting the joystick. See + [#43](https://github.com/nirenjan/libx52/issues/43) ## [0.2.3] - 2021-09-20 ### Added diff --git a/libx52/x52_core.c b/libx52/x52_core.c index d1ea6d5..7f730d8 100644 --- a/libx52/x52_core.c +++ b/libx52/x52_core.c @@ -71,11 +71,15 @@ static int _x52_hotplug_callback(libusb_context *ctx, bool libx52_is_connected(libx52_device *dev) { int rc; + struct timeval tv = {0}; + int completed = 0; if (!dev) { return false; } + /* Handle events, and then check if the hotplug callbacks have fired */ + libusb_handle_events_timeout_completed(dev->ctx, &tv, &completed); if (dev->hdl) { if (dev->handle_registered) {