Как получить список ntp-серверов в systemd

#c #linux #systemd

#c #linux #systemd

Вопрос:

У меня система Linux с systemd 237. Мне нужно получить список NTP-серверов, настроенных DHCP, используя C-код.

В источниках systemd есть вся информация:

 /* Get NTP entries for a given link. These are domain names or string
 * representations of IP addresses */
int sd_network_link_get_ntp(int ifindex, char ***ret);
  

(из sd-network.h)
Но этот интерфейс не представлен в libsystemd.

Я знаю, что последняя версия systemd предоставляет интерфейс dbus с необходимой информацией, но я не могу его обновить.

Файл /etc/ntp.conf больше не заполнен.

Файлы в /run/systemd /netif не заполняются до тех пор, пока не будет запущен networkctl, и, несмотря на это, сгенерированные файлы содержат явную строку в начале:

 # This is private data. Do not parse.
  

Если у кого-нибудь есть решение.

Спасибо

Комментарии:

1. Они добавили интерфейс dbus в качестве решения, предположительно потому, что в более ранней версии не было поддерживаемого способа сделать это. Если вы не можете выполнить обновление, вам придется выполнять неподдерживаемые действия, например, анализировать файл, в котором указано, что его не следует анализировать.

2. Думаю, я обойдусь выводом команды networkctl, потому что, как я уже сказал, содержимое файлов заполняется только при ее запуске.