chiark / gitweb /
libudev: use 4096 bytes buffer for attribute reading
[elogind.git] / udev / lib / libudev-device.c
index 0cb59212815459924f7319187ff7e5b0d81e9f21..fc881fb3fdacf27c5d194de6da0825254bc96df8 100644 (file)
@@ -862,7 +862,7 @@ const char *udev_device_get_sysattr_value(struct udev_device *udev_device, const
 {
        struct udev_list_entry *list_entry;
        char path[UTIL_PATH_SIZE];
-       char value[UTIL_NAME_SIZE];
+       char value[4096];
        struct stat statbuf;
        int fd;
        ssize_t size;
@@ -1059,6 +1059,20 @@ struct udev_list_entry *udev_device_add_property_from_string(struct udev_device
        return udev_device_add_property(udev_device, name, val);
 }
 
+const char *udev_device_get_property_value(struct udev_device *udev_device, const char *key)
+{
+       struct udev_list_entry *list_entry;
+
+       if (udev_device == NULL)
+               return NULL;
+       if (key == NULL)
+               return NULL;
+
+       list_entry = udev_device_get_properties_list_entry(udev_device);
+       list_entry =  udev_list_entry_get_by_name(list_entry, key);
+       return udev_list_entry_get_value(list_entry);
+}
+
 #define ENVP_SIZE                      128
 #define MONITOR_BUF_SIZE               4096
 static int update_envp_monitor_buf(struct udev_device *udev_device)