Add a basic test that the configured fallback hostname is OK

Ideally, assert_cc() would be used for this, so that it is not possible to even
compile systemd with something like '-Dfallback-hostname=.foo'. But to do a
proper check we need to call hostname_is_valid(), and we cannot depend on being
able to run code (e.g. during cross-compilation). So let's do a very superficial
check in meson, and a proper on in test-util.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2020-05-07 17:30:02 +02:00
parent 6dbf40256b
commit eef4b80033
2 changed files with 17 additions and 1 deletions

View File

@ -639,7 +639,14 @@ endforeach
############################################################
conf.set_quoted('FALLBACK_HOSTNAME', get_option('fallback-hostname'))
fallback_hostname = get_option('fallback-hostname')
if fallback_hostname == '' or fallback_hostname[0] == '.' or fallback_hostname[0] == '-'
error('Invalid fallback-hostname configuration')
# A more extensive test is done in test-hostname-util. Let's catch
# the most obvious errors here so we don't fail with an assert later.
endif
conf.set_quoted('FALLBACK_HOSTNAME', fallback_hostname)
conf.set10('ENABLE_COMPAT_GATEWAY_HOSTNAME', get_option('compat-gateway-hostname'))
gateway_hostnames = ['_gateway'] + (conf.get('ENABLE_COMPAT_GATEWAY_HOSTNAME') == 1 ? ['gateway'] : [])

View File

@ -140,6 +140,13 @@ static void test_read_etc_hostname(void) {
unlink(path);
}
static void test_fallback_hostname(void) {
if (!hostname_is_valid(FALLBACK_HOSTNAME, false)) {
log_error("Configured fallback hostname \"%s\" is not valid.", FALLBACK_HOSTNAME);
exit(EXIT_FAILURE);
}
}
int main(int argc, char *argv[]) {
log_parse_environment();
log_open();
@ -148,5 +155,7 @@ int main(int argc, char *argv[]) {
test_hostname_cleanup();
test_read_etc_hostname();
test_fallback_hostname();
return 0;
}