resolve: control system hostname synthesis via environment variable

This commit is contained in:
Jacek Migacz 2022-08-22 18:24:29 +02:00 committed by Yu Watanabe
parent f13f91f06a
commit d896260958
2 changed files with 11 additions and 0 deletions

View file

@ -286,6 +286,11 @@ All tools:
the installed ones. By default non-UTF-8 locales are suppressed from the
selection, since we are living in the 21st century.
`systemd-resolved`:
* `$SYSTEMD_RESOLVED_SYNTHESIZE_HOSTNAME` — if set to "0", `systemd-resolved`
won't synthesize system hostname on both regular and reverse lookups.
`systemd-sysext`:
* `$SYSTEMD_SYSEXT_HIERARCHIES` — this variable may be used to override which

View file

@ -1,6 +1,7 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "alloc-util.h"
#include "env-util.h"
#include "hostname-util.h"
#include "local-addresses.h"
#include "missing_network.h"
@ -410,6 +411,8 @@ int dns_synthesize_answer(
} else if (manager_is_own_hostname(m, name)) {
if (getenv_bool("SYSTEMD_RESOLVED_SYNTHESIZE_HOSTNAME") == 0)
continue;
r = synthesize_system_hostname_rr(m, key, ifindex, &answer);
if (r < 0)
return log_error_errno(r, "Failed to synthesize system hostname RRs: %m");
@ -444,6 +447,9 @@ int dns_synthesize_answer(
} else if (dns_name_address(name, &af, &address) > 0) {
int v, w;
if (getenv_bool("SYSTEMD_RESOLVED_SYNTHESIZE_HOSTNAME") == 0)
continue;
v = synthesize_system_hostname_ptr(m, af, &address, ifindex, &answer);
if (v < 0)
return log_error_errno(v, "Failed to synthesize system hostname PTR RR: %m");