mirror of
https://github.com/systemd/systemd.git
synced 2025-03-19 22:50:17 +03:00
resolved: if ipv6 is off patch hostname→address query with unspec family to ipv4
If the client never specified the address family, and IPv6 is off in the kernel, then look only for A, never for AAAA RRs. Fixes: #23951
This commit is contained in:
parent
fc84ddda2f
commit
0438aa5775
@ -4,6 +4,7 @@
|
||||
#include "dns-domain.h"
|
||||
#include "dns-type.h"
|
||||
#include "resolved-dns-question.h"
|
||||
#include "socket-util.h"
|
||||
|
||||
DnsQuestion *dns_question_new(size_t n) {
|
||||
DnsQuestion *q;
|
||||
@ -330,6 +331,11 @@ int dns_question_new_address(DnsQuestion **ret, int family, const char *name, bo
|
||||
if (!IN_SET(family, AF_INET, AF_INET6, AF_UNSPEC))
|
||||
return -EAFNOSUPPORT;
|
||||
|
||||
/* If IPv6 is off and the request has an unspecified lookup family, restrict it automatically to
|
||||
* IPv4. */
|
||||
if (family == AF_UNSPEC && !socket_ipv6_is_enabled())
|
||||
family = AF_INET;
|
||||
|
||||
if (convert_idna) {
|
||||
r = dns_name_apply_idna(name, &buf);
|
||||
if (r < 0)
|
||||
|
Loading…
x
Reference in New Issue
Block a user