#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, потому что, как я уже сказал, содержимое файлов заполняется только при ее запуске.