X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=extras%2Ffloppy%2Fcreate_floppy_devices.c;h=b9fa4ef41d7e5a9061a14729da7e250548f95815;hb=f1a9ac32b992c0c6ca09e90035eca2c8da3bf548;hp=7b61ef05b18a935c5f8a9d2995066e7dd321f783;hpb=e5f76f66138d8ef50d04034dcd4d3272eb00b740;p=elogind.git diff --git a/extras/floppy/create_floppy_devices.c b/extras/floppy/create_floppy_devices.c index 7b61ef05b..b9fa4ef41 100644 --- a/extras/floppy/create_floppy_devices.c +++ b/extras/floppy/create_floppy_devices.c @@ -74,21 +74,15 @@ int main(int argc, char **argv) int major = 2, minor; uid_t uid = 0; gid_t gid = 0; - mode_t mode = 0; + mode_t mode = 0660; int create_nodes = 0; int print_nodes = 0; - int unlink_nodes = 0; int is_err = 0; while ((c = getopt(argc, argv, "cudm:U:G:M:t:")) != -1) { switch (c) { case 'c': create_nodes = 1; - unlink_nodes = 0; - break; - case 'u': - unlink_nodes = 1; - create_nodes = 0; break; case 'd': print_nodes = 1; @@ -155,6 +149,7 @@ int main(int argc, char **argv) if (type == 0) return 0; + udev_config_init(); selinux_init(); i = 0; @@ -165,10 +160,11 @@ int main(int argc, char **argv) printf("%s b %d %d %d\n", node, mode, major, minor); if (create_nodes) { unlink(node); - selinux_setfscreatecon(node, NULL, mode); + selinux_setfscreatecon(node, NULL, S_IFBLK | mode); mknod(node, S_IFBLK | mode, makedev(major,minor)); selinux_resetfscreatecon(); chown(node, uid, gid); + chmod(node, S_IFBLK | mode); } i++; }