diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-07-13 09:05:15 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-07-21 04:04:49 +0900 |
commit | 1b86009298c0c15678abb976e561de64f65decc9 (patch) | |
tree | ea385ecafed601c96d14c68a6a530226b1ebfbdf /src/resolve/resolved-dns-server.c | |
parent | da9de7385adc2329bdd75351db9fdbb4a2f90897 (diff) | |
download | systemd-1b86009298c0c15678abb976e561de64f65decc9.tar.gz |
resolve: also compare port and SNI in dns_server_find()
Diffstat (limited to 'src/resolve/resolved-dns-server.c')
-rw-r--r-- | src/resolve/resolved-dns-server.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/resolve/resolved-dns-server.c b/src/resolve/resolved-dns-server.c index b4f2a8c97f..1bd9c6fcbd 100644 --- a/src/resolve/resolved-dns-server.c +++ b/src/resolve/resolved-dns-server.c @@ -666,11 +666,15 @@ void dns_server_mark_all(DnsServer *first) { dns_server_mark_all(first->servers_next); } -DnsServer *dns_server_find(DnsServer *first, int family, const union in_addr_union *in_addr, int ifindex) { +DnsServer *dns_server_find(DnsServer *first, int family, const union in_addr_union *in_addr, uint16_t port, int ifindex, const char *name) { DnsServer *s; LIST_FOREACH(servers, s, first) - if (s->family == family && in_addr_equal(family, &s->address, in_addr) > 0 && s->ifindex == ifindex) + if (s->family == family && + in_addr_equal(family, &s->address, in_addr) > 0 && + s->port == port && + s->ifindex == ifindex && + streq_ptr(s->server_name, name)) return s; return NULL; |