X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udevinitsend.c;h=5abf3d4bd33fcd361a1c58f680ae99a31ff8bb72;hb=903a36495f2c796f15464943ad26bfd76f548b6a;hp=c7d56fc25979cf3dcbd8aa578d7605173145b931;hpb=510de9c9e40c27b1eb224dc49ac439997bfe4db6;p=elogind.git diff --git a/udevinitsend.c b/udevinitsend.c index c7d56fc25..5abf3d4bd 100644 --- a/udevinitsend.c +++ b/udevinitsend.c @@ -1,9 +1,9 @@ /* * udevinitsend.c * - * Userspace devfs - * - * Copyright (C) 2004, 2005 Hannes Reinecke + * Copyright (C) 2004, 2005 SuSE Linux Products GmbH + * Author: + * Hannes Reinecke * * This program is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License as published by the @@ -23,6 +23,7 @@ #include #include #include +#include #include #include #include @@ -38,16 +39,21 @@ #include "udev.h" #include "udev_version.h" #include "udevd.h" +#include "udev_utils.h" #include "logging.h" +static int log = 0; #ifdef USE_LOG -void log_message (int level, const char *format, ...) +void log_message (int priority, const char *format, ...) { va_list args; + if (priority > log) + return; + va_start(args, format); - vsyslog(level, format, args); + vsyslog(priority, format, args); va_end(args); } #endif @@ -94,7 +100,7 @@ static int udevsend(char *filename, int sock, int disable_loop_detection) memset(&usend_msg, 0x00, sizeof(struct udevd_msg)); strcpy(usend_msg.magic, UDEV_MAGIC); - usend_msg.type = UDEVD_INITSEND; + usend_msg.type = UDEVD_UEVENT_INITSEND; ls = fdmap; ch = le = ls; @@ -126,11 +132,11 @@ static int udevsend(char *filename, int sock, int disable_loop_detection) strncpy(&usend_msg.envbuf[bufpos],ls,(ch - ls) + 1); bufpos += (ch - ls) + 1; if (ch[1] == '\'' && le[-1] == '\'') { - strncpy(&usend_msg.envbuf[bufpos],ch + 2, (le - ch) -3); + strncpy(&usend_msg.envbuf[bufpos],ch + 2, (le - ch) - 3); bufpos += (le - ch) - 3; } else { - strncpy(&usend_msg.envbuf[bufpos],ch, (le - ch)); - bufpos += (le - ch); + strncpy(&usend_msg.envbuf[bufpos],ch + 1, (le - ch) - 1); + bufpos += (le - ch) - 1; } bufpos++; } @@ -164,6 +170,11 @@ int main(int argc, char *argv[], char *envp[]) int retval = 1; int disable_loop_detection = 0; int sock; + const char *env; + + env = getenv("UDEV_LOG"); + if (env) + log = log_priority(env); logging_init("udevinitsend"); dbg("version %s", UDEV_VERSION);