summaryrefslogtreecommitdiff
path: root/dynamicdevice.c
diff options
context:
space:
mode:
Diffstat (limited to 'dynamicdevice.c')
-rw-r--r--dynamicdevice.c21
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)) {