chiark / gitweb /
core: add a system-wide SystemCallArchitectures= setting
[elogind.git] / src / core / dbus-unit.c
index 7a566ff7f9156eedddc5d0b5104247df9e823a7a..d4393e321f2e2ec91b0229b14f032163599780ce 100644 (file)
@@ -627,36 +627,32 @@ static int send_changed_signal(sd_bus *bus, const char *destination, void *userd
         assert(u);
 
         p = unit_dbus_path(u);
-        if (!u)
+        if (!p)
                 return -ENOMEM;
 
         /* Send a properties changed signal. First for the specific
          * type, then for the generic unit. The clients may rely on
          * this order to get atomic behavior if needed. */
 
-        if (UNIT_VTABLE(u)->bus_changing_properties) {
-
-                r = sd_bus_emit_properties_changed_strv(
-                                bus, p,
-                                UNIT_VTABLE(u)->bus_interface,
-                                (char**) UNIT_VTABLE(u)->bus_changing_properties);
-                if (r < 0)
-                        return r;
+        r = sd_bus_emit_properties_changed_strv(
+                        bus, p,
+                        UNIT_VTABLE(u)->bus_interface,
+                        NULL);
+        if (r < 0) {
+                log_warning("Failed to send out specific PropertiesChanged signal for %s: %s", u->id, strerror(-r));
+                return r;
         }
 
-        return sd_bus_emit_properties_changed(
+        r = sd_bus_emit_properties_changed_strv(
                         bus, p,
                         "org.freedesktop.systemd1.Unit",
-                        "ActiveState",
-                        "SubState",
-                        "InactiveExitTimestamp",
-                        "ActiveEnterTimestamp",
-                        "ActiveExitTimestamp",
-                        "InactiveEnterTimestamp",
-                        "Job",
-                        "ConditionResult",
-                        "ConditionTimestamp",
                         NULL);
+        if (r < 0) {
+                log_warning("Failed to send out generic PropertiesChanged signal for %s: %s", u->id, strerror(-r));
+                return r;
+        }
+
+        return 0;
 }
 
 void bus_unit_send_change_signal(Unit *u) {
@@ -817,7 +813,7 @@ static int bus_unit_set_transient_property(
                 if (r < 0)
                         return r;
 
-                if (!unit_name_is_valid(s, false) || !endswith(s, ".slice"))
+                if (!unit_name_is_valid(s, TEMPLATE_INVALID) || !endswith(s, ".slice"))
                         return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid slice name %s", s);
 
                 if (isempty(s)) {
@@ -869,7 +865,7 @@ static int bus_unit_set_transient_property(
                         return r;
 
                 while ((r = sd_bus_message_read(message, "s", &other)) > 0) {
-                        if (!unit_name_is_valid(other, false))
+                        if (!unit_name_is_valid(other, TEMPLATE_INVALID))
                                 return sd_bus_error_setf(error, SD_BUS_ERROR_INVALID_ARGS, "Invalid unit name %s", other);
 
                         if (mode != UNIT_CHECK) {