const char *value;
int daemonize = 0;
static const struct option options[] = {
- { "daemon", 0, NULL, 'd' },
- { "debug-trace", 0, NULL, 't' },
- { "debug", 0, NULL, 'D' },
- { "help", 0, NULL, 'h' },
- { "version", 0, NULL, 'V' },
+ { "daemon", no_argument, NULL, 'd' },
+ { "debug-trace", no_argument, NULL, 't' },
+ { "debug", no_argument, NULL, 'D' },
+ { "help", no_argument, NULL, 'h' },
+ { "version", no_argument, NULL, 'V' },
{}
};
int rc = 1;
logging_init("udevd");
udev_set_log_fn(udev, log_fn);
dbg(udev, "version %s\n", VERSION);
+ selinux_init(udev);
while (1) {
int option;
fd = open("/dev/kmsg", O_WRONLY);
if (fd > 0) {
- const char *str = "<6>udevd version " VERSION " started\n";
-
- write(fd, str, strlen(str));
+ const char *ver_str = "<6>udev: starting version " VERSION "\n";
+ char path[UTIL_PATH_SIZE];
+ struct stat statbuf;
+
+ write(fd, ver_str, strlen(ver_str));
+ util_strlcpy(path, udev_get_sys_path(udev), sizeof(path));
+ util_strlcat(path, "/class/mem/null", sizeof(path));
+ if (lstat(path, &statbuf) == 0) {
+ if (S_ISDIR(statbuf.st_mode)) {
+ const char *depr_str = "<6>udev: deprecated sysfs layout "
+ "(CONFIG_SYSFS_DEPRECATED) is unsupported\n";
+
+ write(fd, depr_str, strlen(depr_str));
+ }
+ }
close(fd);
}
if (uevent_netlink_sock >= 0)
close(uevent_netlink_sock);
+ selinux_exit(udev);
+ udev_unref(udev);
logging_close();
return rc;
}