chiark / gitweb /
fixups to get back to proper patch order
[elogind.git] / udevd.c
diff --git a/udevd.c b/udevd.c
index 3ad8c47f22887660e05d5e6ee30d2b63c58e4a40..06b172bc253b98db2b97c9b02f141d734d7ac4ea 100644 (file)
--- a/udevd.c
+++ b/udevd.c
@@ -38,8 +38,8 @@
 
 #include "list.h"
 #include "udev.h"
-#include "udev_lib.h"
 #include "udev_version.h"
+#include "udev_utils.h"
 #include "udevd.h"
 #include "logging.h"
 
@@ -131,6 +131,7 @@ static void udev_run(struct hotplug_msg *msg)
        case 0:
                /* child */
                close(udevsendsock);
+               logging_close();
                execle(udev_bin, "udev", msg->subsystem, NULL, msg->envp);
                dbg("exec of child failed");
                _exit(1);
@@ -290,7 +291,7 @@ static void handle_udevsend_msg(int sock)
        /* copy environment buffer and reconstruct envp */
        memcpy(msg->envbuf, usend_msg.envbuf, envbuf_size);
        bufpos = 0;
-       for (i = 0; (bufpos < envbuf_size) && (i < HOTPLUG_NUM_ENVP-1); i++) {
+       for (i = 0; (bufpos < envbuf_size) && (i < HOTPLUG_NUM_ENVP-2); i++) {
                int keylen;
                char *key;
 
@@ -313,6 +314,7 @@ static void handle_udevsend_msg(int sock)
                if (strncmp(key, "SEQNUM=", 7) == 0)
                        msg->seqnum = strtoull(&key[7], NULL, 10);
        }
+       msg->envp[i++] = "MANAGED_EVENT=1";
        msg->envp[i] = NULL;
 
        /* if no seqnum is given, we move straight to exec queue */