This patch prints to stderr all messages with priority higher or equal than LOG_ERR. It is needed to prevent errors in libudev from going unnoticed (e.g. when udevd is not running). -- ciao, Marco
--- a/udev/udevadm.c +++ b/udev/udevadm.c @@ -35,6 +35,8 @@ static void log_fn(struct udev *udev, in fprintf(stderr, "%s: ", fn); vfprintf(stderr, format, args); } else { + if (priority <= LOG_ERR) + vfprintf(stderr, format, args); vsyslog(priority, format, args); } } @@ -162,8 +164,6 @@ int main(int argc, char *argv[]) len = readlink(path, prog, sizeof(prog)); if (len > 0) { prog[len] = '\0'; - fprintf(stderr, "the program '%s' called '%s', it should use 'udevadm %s <options>', " - "this will stop working in a future release\n", prog, argv[0], command); err(udev, "the program '%s' called '%s', it should use 'udevadm %s <options>', " "this will stop working in a future release\n", prog, argv[0], command); } --- a/udev/udevadm-control.c +++ b/udev/udevadm-control.c @@ -81,8 +81,6 @@ int udevadm_control(struct udev *udev, i break; if (option > 255) { - fprintf(stderr, "udevadm control expects commands without underscore, " - "this will stop working in a future release\n"); err(udev, "udevadm control expects commands without underscore, " "this will stop working in a future release\n"); } @@ -144,8 +142,6 @@ int udevadm_control(struct udev *udev, i if (argv[optind] != NULL) { const char *arg = argv[optind]; - fprintf(stderr, "udevadm control commands requires the --<command> format, " - "this will stop working in a future release\n"); err(udev, "udevadm control commands requires the --<command> format, " "this will stop working in a future release\n"); @@ -177,7 +173,6 @@ int udevadm_control(struct udev *udev, i } if (rc != 0) { - fprintf(stderr, "unrecognized command\n"); err(udev, "unrecognized command\n"); } exit: --- a/udev/udevadm-settle.c +++ b/udev/udevadm-settle.c @@ -139,14 +139,12 @@ int udevadm_settle(struct udev *udev, in if (start > end) { err(udev, "seq-start larger than seq-end, ignoring\n"); - fprintf(stderr, "seq-start larger than seq-end, ignoring\n"); start = 0; end = 0; } if (start > kernel_seq || end > kernel_seq) { err(udev, "seq-start or seq-end larger than current kernel value, ignoring\n"); - fprintf(stderr, "seq-start or seq-end larger than current kernel value, ignoring\n"); start = 0; end = 0; } @@ -154,7 +152,6 @@ int udevadm_settle(struct udev *udev, in } else { if (end > 0) { err(udev, "seq-end needs seq-start parameter, ignoring\n"); - fprintf(stderr, "seq-end needs seq-start parameter, ignoring\n"); end = 0; } } --- a/udev/udevadm-trigger.c +++ b/udev/udevadm-trigger.c @@ -146,7 +146,6 @@ int udevadm_trigger(struct udev *udev, i } else if (strcmp(optarg, "failed") == 0) { device_type = TYPE_FAILED; } else { - fprintf(stderr, "unknown type --type=%s\n", optarg); err(udev, "unknown type --type=%s\n", optarg); rc = 2; goto exit;