X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=udev%2Fudev-event.c;h=7db75132476124b0bc940ba973565dcaf0ee46f0;hb=8ab7a9be03441db21d459cbb9c08400377c3556d;hp=823768a3e2977df6e4a6059d9afcb695c39da229;hpb=869c9031608f0796bb4363d5de5db058fe96fedd;p=elogind.git diff --git a/udev/udev-event.c b/udev/udev-event.c index 823768a3e..7db751324 100644 --- a/udev/udev-event.c +++ b/udev/udev-event.c @@ -318,7 +318,7 @@ subst: len = strlen(vbuf); while (len > 0 && isspace(vbuf[--len])) vbuf[len] = '\0'; - count = udev_util_replace_chars(vbuf, UDEV_ALLOWED_CHARS_INPUT); + count = util_replace_chars(vbuf, UDEV_ALLOWED_CHARS_INPUT); if (count > 0) info(event->udev, "%i character(s) replaced\n" , count); l = util_strpcpy(&s, l, vbuf); @@ -1030,13 +1030,17 @@ int udev_event_execute_rules(struct udev_event *event, struct udev_rules *rules, } } + /* set sticky bit, so we do not remove the node on module unload */ + if (event->static_node) + event->mode |= 01000; + err = udev_node_add(dev, event->mode, event->uid, event->gid); } /* preserve old, or get new initialization timestamp */ if (event->dev_db != NULL && udev_device_get_usec_initialized(event->dev_db) > 0) udev_device_set_usec_initialized(event->dev, udev_device_get_usec_initialized(event->dev_db)); - else + else if (udev_device_get_usec_initialized(event->dev) == 0) udev_device_set_usec_initialized(event->dev, now_usec()); /* (re)write database file */