X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udevd.c;h=06b172bc253b98db2b97c9b02f141d734d7ac4ea;hb=9af5bb2f8fdbf54c064ddbd319d61092f28a4132;hp=3ad8c47f22887660e05d5e6ee30d2b63c58e4a40;hpb=ec9cc0127d3b50885723dd4f54d4851e7160ec22;p=elogind.git diff --git a/udevd.c b/udevd.c index 3ad8c47f2..06b172bc2 100644 --- 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 */