BACKPORT: tlsdate-dbus-announce: use name and flush connection

Have tlsdate-dbus-announce grab a well-known bus name before it sends its
signal, and have it wait for the signal to actually be sent over the bus before
exiting.

Signed-off-by: Elly Fong-Jones <ellyjones@chromium.org>
(cherry picked from commit f258f78782e362bf26c6cf606f11293d68632780)

Change-Id: Ica80f47d7f2317c9c31e0d34ccbc23873f087c50
Reviewed-on: https://gerrit.chromium.org/gerrit/44534
Reviewed-by: Kees Cook <keescook@chromium.org>
Commit-Queue: Elly Jones <ellyjones@chromium.org>
Tested-by: Elly Jones <ellyjones@chromium.org>
diff --git a/src/tlsdate-dbus-announce.c b/src/tlsdate-dbus-announce.c
index 86ef1d5..fc474fe 100644
--- a/src/tlsdate-dbus-announce.c
+++ b/src/tlsdate-dbus-announce.c
@@ -22,11 +22,14 @@
   conn = dbus_bus_get(DBUS_BUS_SYSTEM, &error);
   if (!conn)
     return 1;
+  if (dbus_bus_request_name(conn, "org.torproject.tlsdate", 0, &error) < 0)
+    return 1;
   msg = dbus_message_new_signal("/org/torproject/tlsdate", "org.torproject.tlsdate", "TimeUpdated");
   if (!msg)
     return 1;
   if (!dbus_connection_send(conn, msg, &ignored))
     return 1;
+  dbus_connection_flush(conn);
   dbus_message_unref(msg);
   return 0;
 }