Merge pull request #34353 from yuwata/timesync-bus-document

timesync: add document for org.freedesktop.timesync1
This commit is contained in:
Lennart Poettering
2024-09-11 10:15:30 +02:00
committed by GitHub
6 changed files with 190 additions and 2 deletions

View File

@@ -0,0 +1,156 @@
<?xml version="1.0"?>
<!--*-nxml-*-->
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
<!ENTITY % entities SYSTEM "custom-entities.ent" >
%entities;
]>
<!-- SPDX-License-Identifier: LGPL-2.1-or-later -->
<refentry id="org.freedesktop.timesync1" conditional='ENABLE_TIMESYNCD'
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo>
<title>org.freedesktop.timesync1</title>
<productname>systemd</productname>
</refentryinfo>
<refmeta>
<refentrytitle>org.freedesktop.timesync1</refentrytitle>
<manvolnum>5</manvolnum>
</refmeta>
<refnamediv>
<refname>org.freedesktop.timesync1</refname>
<refpurpose>The D-Bus interface of systemd-timesyncd</refpurpose>
</refnamediv>
<refsect1>
<title>Introduction</title>
<para>
<citerefentry><refentrytitle>systemd-timesyncd.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
is a system service that may be used to synchronize the local system clock with a remote Network Time
Protocol (NTP) server. This page describes the D-Bus interface.</para>
</refsect1>
<refsect1>
<title>The Manager Object</title>
<para>The service exposes the following interfaces on the Manager object on the bus:</para>
<programlisting executable="systemd-timesyncd" node="/org/freedesktop/timesync1" interface="org.freedesktop.timesync1.Manager">
node /org/freedesktop/timesync1 {
interface org.freedesktop.timesync1.Manager {
methods:
SetRuntimeNTPServers(in as runtime_servers);
properties:
readonly as LinkNTPServers = ['...', ...];
readonly as SystemNTPServers = ['...', ...];
readonly as RuntimeNTPServers = ['...', ...];
readonly as FallbackNTPServers = ['...', ...];
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly s ServerName = '...';
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly (iay) ServerAddress = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly t RootDistanceMaxUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly t PollIntervalMinUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("const")
readonly t PollIntervalMaxUSec = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly t PollIntervalUSec = ...;
readonly (uuuuittayttttbtt) NTPMessage = ...;
@org.freedesktop.DBus.Property.EmitsChangedSignal("false")
readonly x Frequency = ...;
};
interface org.freedesktop.DBus.Peer { ... };
interface org.freedesktop.DBus.Introspectable { ... };
interface org.freedesktop.DBus.Properties { ... };
};
</programlisting>
<!--method SetRuntimeNTPServers is not documented!-->
<!--property LinkNTPServers is not documented!-->
<!--property SystemNTPServers is not documented!-->
<!--property RuntimeNTPServers is not documented!-->
<!--property FallbackNTPServers is not documented!-->
<!--property ServerName is not documented!-->
<!--property ServerAddress is not documented!-->
<!--property RootDistanceMaxUSec is not documented!-->
<!--property PollIntervalMinUSec is not documented!-->
<!--property PollIntervalMaxUSec is not documented!-->
<!--property PollIntervalUSec is not documented!-->
<!--property NTPMessage is not documented!-->
<!--property Frequency is not documented!-->
<!--Autogenerated cross-references for systemd.directives, do not edit-->
<variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.timesync1.Manager"/>
<variablelist class="dbus-interface" generated="True" extra-ref="org.freedesktop.timesync1.Manager"/>
<variablelist class="dbus-method" generated="True" extra-ref="SetRuntimeNTPServers()"/>
<variablelist class="dbus-property" generated="True" extra-ref="LinkNTPServers"/>
<variablelist class="dbus-property" generated="True" extra-ref="SystemNTPServers"/>
<variablelist class="dbus-property" generated="True" extra-ref="RuntimeNTPServers"/>
<variablelist class="dbus-property" generated="True" extra-ref="FallbackNTPServers"/>
<variablelist class="dbus-property" generated="True" extra-ref="ServerName"/>
<variablelist class="dbus-property" generated="True" extra-ref="ServerAddress"/>
<variablelist class="dbus-property" generated="True" extra-ref="RootDistanceMaxUSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="PollIntervalMinUSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="PollIntervalMaxUSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="PollIntervalUSec"/>
<variablelist class="dbus-property" generated="True" extra-ref="NTPMessage"/>
<variablelist class="dbus-property" generated="True" extra-ref="Frequency"/>
<!--End of Autogenerated section-->
<para>
Provides information about the manager.
</para>
</refsect1>
<refsect1>
<title>Examples</title>
<example>
<title>Introspect <interfacename>org.freedesktop.timesync1.Manager</interfacename> on the bus</title>
<programlisting>
$ gdbus introspect --system \
--dest org.freedesktop.timesync1 \
--object-path /org/freedesktop/timesync1
</programlisting>
</example>
</refsect1>
<xi:include href="org.freedesktop.locale1.xml" xpointer="versioning"/>
</refentry>

View File

@@ -67,6 +67,7 @@ manpages = [
['org.freedesktop.systemd1', '5', [], ''],
['org.freedesktop.sysupdate1', '5', [], 'ENABLE_SYSUPDATE'],
['org.freedesktop.timedate1', '5', [], 'ENABLE_TIMEDATED'],
['org.freedesktop.timesync1', '5', [], 'ENABLE_TIMESYNCD'],
['os-release', '5', ['extension-release', 'initrd-release'], ''],
['pam_systemd', '8', [], 'HAVE_PAM'],
['pam_systemd_home', '8', [], 'ENABLE_PAM_HOME'],

View File

@@ -246,9 +246,9 @@ int manager_connect_bus(Manager *m) {
if (r < 0)
return log_error_errno(r, "Failed to connect to bus: %m");
r = sd_bus_add_object_vtable(m->bus, NULL, "/org/freedesktop/timesync1", "org.freedesktop.timesync1.Manager", manager_vtable, m);
r = bus_add_implementation(m->bus, &manager_object, m);
if (r < 0)
return log_error_errno(r, "Failed to add manager object vtable: %m");
return r;
r = bus_log_control_api_register(m->bus);
if (r < 0)
@@ -264,3 +264,9 @@ int manager_connect_bus(Manager *m) {
return 0;
}
const BusObjectImplementation manager_object = {
"/org/freedesktop/timesync1",
"org.freedesktop.timesync1.Manager",
.vtables = BUS_VTABLES(manager_vtable),
};

View File

@@ -1,6 +1,9 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#pragma once
#include "bus-object.h"
#include "timesyncd-manager.h"
extern const BusObjectImplementation manager_object;
int manager_connect_bus(Manager *m);

View File

@@ -7,6 +7,7 @@
#include "sd-event.h"
#include "sd-messages.h"
#include "bus-log-control-api.h"
#include "capability-util.h"
#include "clock-util.h"
#include "daemon-util.h"
@@ -16,6 +17,7 @@
#include "mkdir-label.h"
#include "network-util.h"
#include "process-util.h"
#include "service-util.h"
#include "signal-util.h"
#include "timesyncd-bus.h"
#include "timesyncd-conf.h"
@@ -144,6 +146,13 @@ static int run(int argc, char *argv[]) {
log_set_facility(LOG_CRON);
log_setup();
r = service_parse_argv("systemd-timesyncd.service",
"Network time synchronization",
BUS_IMPLEMENTATIONS(&manager_object, &log_control_object),
argc, argv);
if (r <= 0)
return r;
umask(0022);
if (argc != 1)

View File

@@ -2172,3 +2172,16 @@ org.freedesktop.timedate1.SetTime()
org.freedesktop.timedate1.SetTimezone()
org.freedesktop.timedate1.TimeUSec
org.freedesktop.timedate1.Timezone
org.freedesktop.timesync1.Manager.SetRuntimeNTPServers()
org.freedesktop.timesync1.Manager.LinkNTPServers
org.freedesktop.timesync1.Manager.SystemNTPServers
org.freedesktop.timesync1.Manager.RuntimeNTPServers
org.freedesktop.timesync1.Manager.FallbackNTPServers
org.freedesktop.timesync1.Manager.ServerName
org.freedesktop.timesync1.Manager.ServerAddress
org.freedesktop.timesync1.Manager.RootDistanceMaxUSec
org.freedesktop.timesync1.Manager.PollIntervalMinUSec
org.freedesktop.timesync1.Manager.PollIntervalMaxUSec
org.freedesktop.timesync1.Manager.PollIntervalUSec
org.freedesktop.timesync1.Manager.NTPMessage
org.freedesktop.timesync1.Manager.Frequency