chiark / gitweb /
config_parse_set_status: put signals in the correct set
[elogind.git] / src / core / timer.c
index fc474f78ea1a01345ac4c41e4b7bfdb63656717e..45744c7de57f64ac685c8d9d7d5fecac6039bef4 100644 (file)
@@ -147,10 +147,8 @@ static int timer_setup_persistent(Timer *t) {
                         _cleanup_free_ char *h = NULL;
 
                         r = get_home_dir(&h);
                         _cleanup_free_ char *h = NULL;
 
                         r = get_home_dir(&h);
-                        if (r < 0) {
-                                log_error_errno(r, "Failed to determine home directory: %m");
-                                return r;
-                        }
+                        if (r < 0)
+                                return log_error_errno(r, "Failed to determine home directory: %m");
 
                         t->stamp_path = strjoin(h, "/.local/share/systemd/timers/stamp-", UNIT(t)->id, NULL);
                 }
 
                         t->stamp_path = strjoin(h, "/.local/share/systemd/timers/stamp-", UNIT(t)->id, NULL);
                 }
@@ -507,7 +505,7 @@ static void timer_enter_running(Timer *t) {
         dual_timestamp_get(&t->last_trigger);
 
         if (t->stamp_path)
         dual_timestamp_get(&t->last_trigger);
 
         if (t->stamp_path)
-                touch_file(t->stamp_path, true, t->last_trigger.realtime, (uid_t) -1, (gid_t) -1, 0);
+                touch_file(t->stamp_path, true, t->last_trigger.realtime, UID_INVALID, GID_INVALID, 0);
 
         timer_set_state(t, TIMER_RUNNING);
         return;
 
         timer_set_state(t, TIMER_RUNNING);
         return;
@@ -545,12 +543,12 @@ static int timer_start(Unit *u) {
                         /* The timer has never run before,
                          * make sure a stamp file exists.
                          */
                         /* The timer has never run before,
                          * make sure a stamp file exists.
                          */
-                        touch_file(t->stamp_path, true, (usec_t) -1, (uid_t) -1, (gid_t) -1, 0);
+                        touch_file(t->stamp_path, true, USEC_INFINITY, UID_INVALID, GID_INVALID, 0);
         }
 
         t->result = TIMER_SUCCESS;
         timer_enter_waiting(t, true);
         }
 
         t->result = TIMER_SUCCESS;
         timer_enter_waiting(t, true);
-        return 0;
+        return 1;
 }
 
 static int timer_stop(Unit *u) {
 }
 
 static int timer_stop(Unit *u) {
@@ -560,7 +558,7 @@ static int timer_stop(Unit *u) {
         assert(t->state == TIMER_WAITING || t->state == TIMER_RUNNING || t->state == TIMER_ELAPSED);
 
         timer_enter_dead(t, TIMER_SUCCESS);
         assert(t->state == TIMER_WAITING || t->state == TIMER_RUNNING || t->state == TIMER_ELAPSED);
 
         timer_enter_dead(t, TIMER_SUCCESS);
-        return 0;
+        return 1;
 }
 
 static int timer_serialize(Unit *u, FILE *f, FDSet *fds) {
 }
 
 static int timer_serialize(Unit *u, FILE *f, FDSet *fds) {
@@ -750,6 +748,7 @@ const UnitVTable timer_vtable = {
                 "Unit\0"
                 "Timer\0"
                 "Install\0",
                 "Unit\0"
                 "Timer\0"
                 "Install\0",
+        .private_section = "Timer",
 
         .init = timer_init,
         .done = timer_done,
 
         .init = timer_init,
         .done = timer_done,
@@ -775,4 +774,7 @@ const UnitVTable timer_vtable = {
 
         .bus_interface = "org.freedesktop.systemd1.Timer",
         .bus_vtable = bus_timer_vtable,
 
         .bus_interface = "org.freedesktop.systemd1.Timer",
         .bus_vtable = bus_timer_vtable,
+        .bus_set_property = bus_timer_set_property,
+
+        .can_transient = true,
 };
 };