diff --git a/udevtrigger.c b/udevtrigger.c index bc8453a..49d6b9c 100644 --- a/udevtrigger.c +++ b/udevtrigger.c @@ -36,6 +36,7 @@ static const char *udev_log_str; static int verbose; static int dry_run; +static int sysfs_path_length; #ifdef USE_LOG void log_message(int priority, const char *format, ...) @@ -77,13 +78,13 @@ static int device_list_insert(const char int i; for (i = 0; first_list[i] != NULL; i++) { - if (strncmp(path, first_list[i], strlen(first_list[i])) == 0) { + if (strncmp(path+sysfs_path_length, first_list[i], strlen(first_list[i])) == 0) { device_list = &device_first_list; break; } } for (i = 0; last_list[i] != NULL; i++) { - if (strncmp(path, last_list[i], strlen(last_list[i])) == 0) { + if (strncmp(path+sysfs_path_length, last_list[i], strlen(last_list[i])) == 0) { device_list = &device_last_list; break; } @@ -341,6 +342,7 @@ int main(int argc, char *argv[], char *e } sysfs_init(); + sysfs_path_length=strlen(sysfs_path); udev_scan_bus(); udev_scan_class();