803fb7
From d7ca3b22fce0f97fe10a7abe6e0edc5de785ef98 Mon Sep 17 00:00:00 2001
803fb7
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
803fb7
Date: Sat, 21 Mar 2015 17:40:20 -0400
803fb7
Subject: [PATCH] timedated: flip internal status after executing operation
803fb7
803fb7
timedated would set the internal status before calling out to systemd to do
803fb7
the actual change. When the operation was refused because of a SELinux denial,
803fb7
the state kept in timedated would get out of sync, and the second call from
803fb7
timedatectl would appear to succeed.
803fb7
803fb7
https://bugzilla.redhat.com/show_bug.cgi?id=1014315
803fb7
(cherry picked from commit 192b98b8fe73c8fb4bb3d6540deb93f5fb6eb9d2)
803fb7
---
803fb7
 src/timedate/timedated.c | 4 ++--
803fb7
 1 file changed, 2 insertions(+), 2 deletions(-)
803fb7
803fb7
diff --git a/src/timedate/timedated.c b/src/timedate/timedated.c
803fb7
index 66097ef74..c3113b081 100644
803fb7
--- a/src/timedate/timedated.c
803fb7
+++ b/src/timedate/timedated.c
803fb7
@@ -679,8 +679,6 @@ static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus
803fb7
         if (r == 0)
803fb7
                 return 1;
803fb7
 
803fb7
-        c->use_ntp = ntp;
803fb7
-
803fb7
         r = context_enable_ntp(c, bus, error);
803fb7
         if (r < 0)
803fb7
                 return r;
803fb7
@@ -689,6 +687,8 @@ static int method_set_ntp(sd_bus *bus, sd_bus_message *m, void *userdata, sd_bus
803fb7
         if (r < 0)
803fb7
                 return r;
803fb7
 
803fb7
+        c->use_ntp = ntp;
803fb7
+
803fb7
         log_info("Set NTP to %s", c->use_ntp ? "enabled" : "disabled");
803fb7
 
803fb7
         sd_bus_emit_properties_changed(bus, "/org/freedesktop/timedate1", "org.freedesktop.timedate1", "NTP", NULL);