mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-28 06:35:34 +07:00
[PATCH] simplify permission application
We have only one source of permissions now, so apply the default permissions at udev init.
This commit is contained in:
parent
2a270316e4
commit
65ab133412
27
namedev.c
27
namedev.c
@ -680,7 +680,6 @@ int namedev_name_device(struct udevice *udev, struct sysfs_class_device *class_d
|
|||||||
struct config_device *dev;
|
struct config_device *dev;
|
||||||
char *pos;
|
char *pos;
|
||||||
|
|
||||||
udev->mode = 0;
|
|
||||||
dbg("class_dev->name='%s'", class_dev->name);
|
dbg("class_dev->name='%s'", class_dev->name);
|
||||||
|
|
||||||
/* Figure out where the "device"-symlink is at. For char devices this will
|
/* Figure out where the "device"-symlink is at. For char devices this will
|
||||||
@ -757,34 +756,28 @@ int namedev_name_device(struct udevice *udev, struct sysfs_class_device *class_d
|
|||||||
goto exit;
|
goto exit;
|
||||||
|
|
||||||
udev->partitions = dev->partitions;
|
udev->partitions = dev->partitions;
|
||||||
|
if (dev->mode != 0000)
|
||||||
udev->mode = dev->mode;
|
udev->mode = dev->mode;
|
||||||
|
if (dev->owner[0] != '\0') {
|
||||||
strfieldcpy(udev->owner, dev->owner);
|
strfieldcpy(udev->owner, dev->owner);
|
||||||
apply_format(udev, udev->owner, sizeof(udev->owner), class_dev, sysfs_device);
|
apply_format(udev, udev->owner, sizeof(udev->owner), class_dev, sysfs_device);
|
||||||
|
}
|
||||||
|
if (dev->group[0] != '\0') {
|
||||||
strfieldcpy(udev->group, dev->group);
|
strfieldcpy(udev->group, dev->group);
|
||||||
apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device);
|
apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device);
|
||||||
|
}
|
||||||
|
|
||||||
goto perms;
|
dbg("name, '%s' is going to have owner='%s', group='%s', mode = %#o",
|
||||||
|
udev->name, udev->owner, udev->group, udev->mode);
|
||||||
|
|
||||||
|
goto exit;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* no rule matched, so we use the kernel name */
|
/* no rule matched, so we use the kernel name */
|
||||||
strfieldcpy(udev->name, udev->kernel_name);
|
strfieldcpy(udev->name, udev->kernel_name);
|
||||||
|
dbg("no rule found, use kernel name '%s'", udev->name);
|
||||||
if (udev->type == 'n')
|
|
||||||
goto exit;
|
|
||||||
|
|
||||||
perms:
|
|
||||||
/* apply default permissions to empty fields */
|
|
||||||
if (udev->mode == 0000)
|
|
||||||
udev->mode = default_mode;
|
|
||||||
if (udev->owner[0] == '\0')
|
|
||||||
strfieldcpy(udev->owner, default_owner);
|
|
||||||
if (udev->group[0] == '\0')
|
|
||||||
strfieldcpy(udev->group, default_group);
|
|
||||||
|
|
||||||
dbg("name, '%s' is going to have owner='%s', group='%s', mode = %#o",
|
|
||||||
udev->name, udev->owner, udev->group, udev->mode);
|
|
||||||
|
|
||||||
exit:
|
exit:
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -189,7 +189,7 @@ static int create_node(struct udevice *udev)
|
|||||||
} else {
|
} else {
|
||||||
info("creating device node '%s', major = '%d', minor = '%d', "
|
info("creating device node '%s', major = '%d', minor = '%d', "
|
||||||
"mode = '%#o', uid = '%d', gid = '%d'", filename,
|
"mode = '%#o', uid = '%d', gid = '%d'", filename,
|
||||||
udev->major, udev->minor, (mode_t)udev->mode, uid, gid);
|
udev->major, udev->minor, udev->mode, uid, gid);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* create all_partitions if requested */
|
/* create all_partitions if requested */
|
||||||
|
@ -55,6 +55,10 @@ void udev_init_device(struct udevice *udev, const char* devpath, const char *sub
|
|||||||
udev->type = 'n';
|
udev->type = 'n';
|
||||||
else if (strncmp(udev->devpath, "/class/", 7) == 0)
|
else if (strncmp(udev->devpath, "/class/", 7) == 0)
|
||||||
udev->type = 'c';
|
udev->type = 'c';
|
||||||
|
|
||||||
|
udev->mode = default_mode;
|
||||||
|
strfieldcpy(udev->owner, default_owner);
|
||||||
|
strfieldcpy(udev->group, default_group);
|
||||||
}
|
}
|
||||||
|
|
||||||
int kernel_release_satisfactory(int version, int patchlevel, int sublevel)
|
int kernel_release_satisfactory(int version, int patchlevel, int sublevel)
|
||||||
|
Loading…
Reference in New Issue
Block a user