chiark / gitweb /
systemctl: allow globbing in commands which take multiple unit names
[elogind.git] / src / core / device.c
index 70fac1b8b77a63a5d6c35858007b7b3e309506c5..d3976c9d47314ebf475d0e7c10a4395252ed9ad1 100644 (file)
@@ -268,7 +268,7 @@ static int device_update_unit(Manager *m, struct udev_device *dev, const char *p
                                 memcpy(e, w, l);
                                 e[l] = 0;
 
-                                n = unit_name_mangle(e);
+                                n = unit_name_mangle(e, false);
                                 if (!n) {
                                         r = -ENOMEM;
                                         goto fail;
@@ -303,10 +303,6 @@ static int device_process_new_device(Manager *m, struct udev_device *dev) {
 
         assert(m);
 
-        /* Don't pick up devices before udev finished initialization for them */
-        if (!udev_device_get_is_initialized(dev))
-                return 0;
-
         sysfs = udev_device_get_syspath(dev);
         if (!sysfs)
                 return 0;
@@ -553,6 +549,10 @@ static int device_enumerate(Manager *m) {
         if (r < 0)
                 goto fail;
 
+        r = udev_enumerate_add_match_is_initialized(e);
+        if (r < 0)
+                goto fail;
+
         r = udev_enumerate_scan_devices(e);
         if (r < 0)
                 goto fail;
@@ -653,7 +653,6 @@ const UnitVTable device_vtable = {
         .sub_state_to_string = device_sub_state_to_string,
 
         .bus_interface = "org.freedesktop.systemd1.Device",
-        .bus_changing_properties = bus_device_changing_properties,
         .bus_vtable = bus_device_vtable,
 
         .following = device_following,