_cleanup_(dns_answer_unrefp) DnsAnswer *answer = NULL;
_cleanup_free_ struct local_address *addresses = NULL;
+ Machine *addresses_machine = NULL;
bool found = false, nxdomain = false;
int n_addresses = -1;
if (!dns_resource_key_is_address(key))
continue;
- if (n_addresses < 0) {
+ if (addresses_machine != machine) {
+ addresses = mfree(addresses);
n_addresses = machine_get_addresses(machine, &addresses);
if (n_addresses < 0)
return n_addresses;
+
+ addresses_machine = machine;
}
int family = dns_type_to_af(key->type);
run_and_grep "10\.2\.0\.$i" resolvectl query nss-mymachines-manyips
done
+hook_question='{"question":[{"key":{"class":1,"type":1,"name":"nss-mymachines-singleip"}},{"key":{"class":1,"type":1,"name":"nss-mymachines-manyips"}}]}'
+hook_answer="$(varlinkctl --json=short call /run/systemd/resolve.hook/io.systemd.Machine io.systemd.Resolve.Hook.ResolveRecord "$hook_question")"
+jq -e '.answer[] | select(.rr.key.name == "nss-mymachines-singleip" and .rr.address == [10, 1, 0, 2])' <<<"$hook_answer"
+jq -e '.answer[] | select(.rr.key.name == "nss-mymachines-manyips" and .rr.address == [10, 2, 0, 2])' <<<"$hook_answer"
+(! jq -e '.answer[] | select(.rr.key.name == "nss-mymachines-manyips" and .rr.address == [10, 1, 0, 2])' <<<"$hook_answer")
+
machinectl stop nss-mymachines-{noip,singleip,manyips}