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