/* global variables */
static int sock = -1;
-#ifdef LOG
-void log_message (int level, const char *format, ...)
+#ifdef USE_LOG
+void log_message (int priority, const char *format, ...)
{
- va_list args;
+ va_list args;
+
+ if (priority > udev_log_priority)
+ return;
va_start(args, format);
- vsyslog(level, format, args);
+ vsyslog(priority, format, args);
va_end(args);
}
#endif
/* daemon with empty environment */
close(sock);
execve(UDEVD_BIN, argv, envp);
- dbg("exec of daemon failed");
+ err("exec of daemon failed");
_exit(1);
case -1:
- dbg("fork of daemon failed");
+ err("fork of daemon failed");
return -1;
default:
exit(0);
}
break;
case -1:
- dbg("fork of helper failed");
+ err("fork of helper failed");
return -1;
default:
waitpid(pid, NULL, 0);
case 0:
/* child */
execv(UDEV_BIN, argv);
- dbg("exec of child failed");
+ err("exec of udev child failed");
_exit(1);
break;
case -1:
- dbg("fork of child failed");
+ err("fork of udev child failed");
break;
default:
waitpid(pid, NULL, 0);
const char *subsystem = NULL;
logging_init("udevsend");
+#ifdef USE_LOG
+ udev_init_config();
+#endif
dbg("version %s", UDEV_VERSION);
sock = socket(AF_LOCAL, SOCK_DGRAM, 0);
if (sock == -1) {
- dbg("error getting socket");
+ err("error getting socket");
goto fallback;
}
key = envp[i];
keylen = strlen(key);
- if (bufpos + keylen >= HOTPLUG_BUFFER_SIZE-1) {
- dbg("environment buffer too small, probably not called by the kernel");
- continue;
- }
/* prevent loops in the scripts we execute */
if (strncmp(key, "UDEVD_EVENT=", 12) == 0) {
goto exit;
}
+ if (bufpos + keylen >= HOTPLUG_BUFFER_SIZE-1) {
+ err("environment buffer too small, probably not called by the kernel");
+ continue;
+ }
+
/* remember the SUBSYSTEM */
if (strncmp(key, "SUBSYSTEM=", 10) == 0)
subsystem = &key[10];
}
if (errno != ECONNREFUSED) {
- dbg("error sending message (%s)", strerror(errno));
+ err("error sending message (%s)", strerror(errno));
goto fallback;
}
if (!started_daemon) {
- dbg("try to start udevd daemon");
+ info("try to start udevd daemon");
retval = start_daemon();
if (retval) {
- info("error starting daemon");
+ dbg("error starting daemon");
goto fallback;
}
- info("udevd daemon started");
+ dbg("udevd daemon started");
started_daemon = 1;
} else {
dbg("retry to connect %d", SEND_WAIT_MAX_SECONDS * SEND_WAIT_LOOP_PER_SECOND - loop);
}
fallback:
- info("unable to connect to event daemon, try to call udev directly");
+ err("unable to connect to event daemon, try to call udev directly");
run_udev(subsystem);
exit: