From f46be091060ad48b124a99d4a996405e85c63a33 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Mon, 16 Oct 2006 19:39:37 +0000 Subject: mdev: reduce excessive indentation --- util-linux/mdev.c | 217 ++++++++++++++++++++++++++++-------------------------- 1 file changed, 112 insertions(+), 105 deletions(-) (limited to 'util-linux') diff --git a/util-linux/mdev.c b/util-linux/mdev.c index 1df144f..c03dd61 100644 --- a/util-linux/mdev.c +++ b/util-linux/mdev.c @@ -25,7 +25,7 @@ struct mdev_globals static void make_device(char *path, int delete) { char *device_name; - int major, minor, type, len, fd; + int major, minor, type, len; int mode = 0660; uid_t uid = 0; gid_t gid = 0; @@ -53,119 +53,125 @@ static void make_device(char *path, int delete) if (ENABLE_FEATURE_MDEV_CONF) { char *conf, *pos, *end; + int line, fd; /* mmap the config file */ - if (-1 != (fd=open("/etc/mdev.conf",O_RDONLY))) { - len = lseek(fd, 0, SEEK_END); - conf = mmap(NULL, len, PROT_READ, MAP_PRIVATE, fd, 0); - if (conf) { - int line = 0; - - /* Loop through lines in mmaped file*/ - for (pos=conf; pos-confpw_uid; + } + s++; + /* parse GID */ + gid = strtoul(s, &s2, 10); + if (end2 != s2) { + struct group *grp; + grp = getgrnam(strndupa(s, end2-s)); + if (!grp) break; + gid = grp->gr_gid; + } + } + if (field == 2) { + /* mode */ - /* Three fields: regex, uid:gid, mode */ - for (field=0; field < (3 + ENABLE_FEATURE_MDEV_EXEC); - field++) - { - /* Skip whitespace */ - while (pospw_uid; - } - s++; - /* parse GID */ - gid = strtoul(s, &s2, 10); - if (end2 != s2) { - struct group *grp; - grp = getgrnam(strndupa(s, end2-s)); - if (!grp) break; - gid = grp->gr_gid; - } - } else if (field == 2) { - /* mode */ - - mode = strtoul(pos, &pos, 8); - if (pos != end2) break; - } else if (ENABLE_FEATURE_MDEV_EXEC && field == 3) { - // Command to run - char *s = "@$*", *s2; - if (!(s2 = strchr(s, *pos++))) { - // Force error - field = 1; - break; - } - if ((s2-s+1) & (1< 2) break; - if (field) bb_error_msg_and_die("Bad line %d",line); + if (field > 2) break; + if (field) bb_error_msg_and_die("bad line %d",line); - /* Next line */ - pos = ++end; - } - munmap(conf, len); - } - close(fd); + /* Next line */ + pos = ++end; } + munmap(conf, len); + end_parse: /* nothing */ ; } umask(0); if (!delete) { if (sscanf(temp, "%d:%d", &major, &minor) != 2) return; if (mknod(device_name, mode | type, makedev(major, minor)) && errno != EEXIST) - bb_perror_msg_and_die("mknod %s failed", device_name); + bb_perror_msg_and_die("mknod %s", device_name); if (major == bbg.root_major && minor == bbg.root_minor) symlink(device_name, "root"); @@ -176,10 +182,10 @@ static void make_device(char *path, int delete) int rc; char *s; - s=xasprintf("MDEV=%s",device_name); + s = xasprintf("MDEV=%s", device_name); putenv(s); rc = system(command); - s[4]=0; + s[4] = 0; putenv(s); free(s); free(command); @@ -197,7 +203,8 @@ static void find_dev(char *path) size_t len = strlen(path); struct dirent *entry; - if ((dir = opendir(path)) == NULL) + dir = opendir(path); + if (dir == NULL) return; while ((entry = readdir(dir)) != NULL) { @@ -235,9 +242,9 @@ int mdev_main(int argc, char *argv[]) if (argc == 2 && !strcmp(argv[1],"-s")) { struct stat st; - stat("/", &st); // If this fails, we have bigger problems. - bbg.root_major=major(st.st_dev); - bbg.root_minor=minor(st.st_dev); + xstat("/", &st); + bbg.root_major = major(st.st_dev); + bbg.root_minor = minor(st.st_dev); strcpy(temp,"/sys/block"); find_dev(temp); strcpy(temp,"/sys/class"); -- cgit v1.1