aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnton Khirnov <anton@khirnov.net>2023-01-21 13:02:16 +0100
committerAnton Khirnov <anton@khirnov.net>2023-01-21 13:02:16 +0100
commitfa465e3177d43e44d3554f3ef5588b7bba0c376c (patch)
treeab7152f53635d2e574b837f5ee2a1ab4dfc2d79c
parent2247eb7d9031f467efe82da735a96319ffa23a35 (diff)
uinput_mng: disregard events for removed devicesHEADmaster
-rwxr-xr-xuinput_mng11
1 files changed, 8 insertions, 3 deletions
diff --git a/uinput_mng b/uinput_mng
index 65797fb..b8d60e6 100755
--- a/uinput_mng
+++ b/uinput_mng
@@ -273,8 +273,13 @@ class PhysDevices(dict):
d.write(ecodes.EV_FF, c, ev.value)
def process(self, sel_key):
+ fo = sel_key.fileobj
+ if not fo.path in self:
+ self._logger.debug("Process request for removed device %s", str(fo))
+ return
+
try:
- for ev in sel_key.fileobj.read():
+ for ev in fo.read():
self._logger.debug('phys->uinput: %s', ev)
if ev.type == ecodes.EV_FF:
@@ -284,8 +289,8 @@ class PhysDevices(dict):
self.uinput_dev.write_event(ev)
except OSError as e:
self._logger.error('Error reading from device "%s": %s',
- str(sel_key.fileobj), os.strerror(e.errno))
- self.remove(sel_key.fileobj.path)
+ str(fo), os.strerror(e.errno))
+ self.remove(fo.path)
parser = argparse.ArgumentParser()