- /* but we don't care about net class devices */
- if (strcmp(subsystem, "net") == 0) {
- dbg("don't care about net devices");
+ logging_init("udev");
+ if (devnull < 0)
+ err("fatal, could not open /dev/null: %s", strerror(errno));
+ udev_init_config();
+ dbg("version %s", UDEV_VERSION);
+
+ /* set signal handlers */
+ memset(&act, 0x00, sizeof(act));
+ act.sa_handler = (void (*)(int)) sig_handler;
+ sigemptyset (&act.sa_mask);
+ act.sa_flags = 0;
+ sigaction(SIGALRM, &act, NULL);
+ sigaction(SIGINT, &act, NULL);
+ sigaction(SIGTERM, &act, NULL);
+
+ /* trigger timeout to prevent hanging processes */
+ alarm(UDEV_ALARM_TIMEOUT);
+
+ action = getenv("ACTION");
+ devpath = getenv("DEVPATH");
+ subsystem = getenv("SUBSYSTEM");
+ /* older kernels passed the SUBSYSTEM only as argument */
+ if (!subsystem && argc == 2)
+ subsystem = argv[1];
+
+ if (!action || !subsystem || !devpath) {
+ err("action, subsystem or devpath missing");