diff options
Diffstat (limited to 'dynamicdevice.c')
-rw-r--r-- | dynamicdevice.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/dynamicdevice.c b/dynamicdevice.c index 6ec9e2a..5ed2276 100644 --- a/dynamicdevice.c +++ b/dynamicdevice.c @@ -133,6 +133,27 @@ eDynamicDeviceReturnCode cDynamicDevice::AttachDevice(const char *DevPath) return ddrcNoFreeDynDev; } + cUdevDevice *dev = cUdev::GetDeviceFromDevName(DevPath); + if (dev != NULL) { + bool ignore = false; + const char *tmp; + if (((tmp = dev->GetPropertyValue("dynamite_ignore")) != NULL) + && ((strcasecmp(tmp, "yes") == 0) || (strcasecmp(tmp, "y") == 0) || (strcmp(tmp, "1") == 0))) { + isyslog("dynamite: udev says ignore %s", DevPath); + ignore = true; + } + else if (((tmp = dev->GetPropertyValue("dynamite_instanceid")) != NULL) && isnumber(tmp)) { + int devInstanceId = strtol(tmp, NULL, 10); + if (devInstanceId != InstanceId) { + isyslog("dynamite: device %s is for vdr instance %d, we are %d", DevPath, devInstanceId, InstanceId); + ignore = true; + } + } + delete dev; + if (ignore) + return ddrcNotSupported; + } + cDevice::nextParentDevice = dynamicdevice[freeIndex]; for (cDynamicDeviceProbe *ddp = DynamicDeviceProbes.First(); ddp; ddp = DynamicDeviceProbes.Next(ddp)) { |