X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=namedev.c;h=b9d8a3db2c2dec9fc9e8c7b2157b77e0e16b6173;hp=7305676d427644f6af545552c8cc969de7e13246;hb=b528cd49203c64cf117868b5a5907cb11d934bbb;hpb=558f80ba649fb5b8c2ac2a51e464f1aa07aa791d diff --git a/namedev.c b/namedev.c index 7305676d4..b9d8a3db2 100644 --- a/namedev.c +++ b/namedev.c @@ -36,6 +36,7 @@ #include "libsysfs/sysfs/libsysfs.h" #include "list.h" #include "udev.h" +#include "udev_lib.h" #include "udev_version.h" #include "logging.h" #include "namedev.h" @@ -815,16 +816,15 @@ int namedev_name_device(struct sysfs_class_device *class_dev, struct udevice *ud } if (dev->symlink[0] != '\0') { - char temp[NAME_MAX]; + char temp[NAME_SIZE]; info("configured rule in '%s' at line %i applied, added symlink '%s'", dev->config_file, dev->config_line, dev->symlink); - /* do not clobber dev */ strfieldcpy(temp, dev->symlink); - apply_format(udev, temp, sizeof(temp), - class_dev, sysfs_device); + apply_format(udev, temp, sizeof(temp), class_dev, sysfs_device); + if (udev->symlink[0] != '\0') + strfieldcat(udev->symlink, " "); strfieldcat(udev->symlink, temp); - strfieldcat(udev->symlink, " "); } if (dev->name[0] != '\0') { @@ -841,16 +841,17 @@ int namedev_name_device(struct sysfs_class_device *class_dev, struct udevice *ud goto done; found: - apply_format(udev, udev->name, sizeof(udev->name), - class_dev, sysfs_device); + apply_format(udev, udev->name, sizeof(udev->name), class_dev, sysfs_device); udev->partitions = dev->partitions; + strfieldcpy(udev->config_file, dev->config_file); + udev->config_line = dev->config_line; -done: /* get permissions given in rule */ set_empty_perms(udev, dev->mode, dev->owner, dev->group); +done: /* get permissions given in config file or set defaults */ perm = find_perm(udev->name); if (perm != NULL) { @@ -866,6 +867,9 @@ done: dbg("name, '%s' is going to have owner='%s', group='%s', mode = %#o", udev->name, udev->owner, udev->group, udev->mode); + /* store time of action */ + udev->config_time = time(NULL); + return 0; }