chiark / gitweb /
[PATCH] add install and uninstall the etc/dev.d/net/hotplug.dev file to the Makefile
[elogind.git] / udev_lib.c
index e9c16c863a3407ac0705923c375b8264441b3f39..db1096ebf7b7254847c98f521d44e462cd373961 100644 (file)
@@ -86,17 +86,28 @@ char *get_subsystem(char *subsystem)
        return subsystem;
 }
 
+#define BLOCK_PATH             "/block/"
+#define CLASS_PATH             "/class/"
+#define NET_PATH               "/class/net/"
+
 char get_device_type(const char *path, const char *subsystem)
 {
-       if (strcmp(subsystem, "block") == 0 ||
-           strstr(path, "/block/") != NULL)
+       if (strcmp(subsystem, "block") == 0)
+               return 'b';
+
+       if (strcmp(subsystem, "net") == 0)
+               return 'n';
+
+       if (strncmp(path, BLOCK_PATH, strlen(BLOCK_PATH)) == 0 &&
+           strlen(path) > strlen(BLOCK_PATH))
                return 'b';
 
-       if (strcmp(subsystem, "net") == 0 ||
-           strstr(path, "/class/net/") != NULL)
+       if (strncmp(path, NET_PATH, strlen(NET_PATH)) == 0 &&
+           strlen(path) > strlen(NET_PATH))
                return 'n';
 
-       if (strstr(path, "/class/") != NULL)
+       if (strncmp(path, CLASS_PATH, strlen(CLASS_PATH)) == 0 &&
+           strlen(path) > strlen(CLASS_PATH))
                return 'c';
 
        return '\0';