chiark / gitweb /
man: add systemd-verify(1)
[elogind.git] / src / resolve / resolved-dns-scope.c
index 38b64905a4565827724583d8c4284ec2771b781d..190c5f41af1d20c8ffdc71d69236ccb1d704952b 100644 (file)
@@ -23,6 +23,7 @@
 
 #include "strv.h"
 #include "socket-util.h"
+#include "af-list.h"
 #include "resolved-dns-domain.h"
 #include "resolved-dns-scope.h"
 
@@ -47,7 +48,7 @@ int dns_scope_new(Manager *m, DnsScope **ret, Link *l, DnsProtocol protocol, int
 
         dns_scope_llmnr_membership(s, true);
 
-        log_debug("New scope on link %s, protocol %s, family %s", strna(l ? l->name : NULL), dns_protocol_to_string(protocol), family_to_string(family));
+        log_debug("New scope on link %s, protocol %s, family %s", l ? l->name : "*", dns_protocol_to_string(protocol), family == AF_UNSPEC ? "*" : af_to_name(family));
 
         *ret = s;
         return 0;
@@ -57,7 +58,7 @@ DnsScope* dns_scope_free(DnsScope *s) {
         if (!s)
                 return NULL;
 
-        log_debug("Removing scope on link %s, protocol %s, family %s", strna(s->link ? s->link->name : NULL), dns_protocol_to_string(s->protocol), family_to_string(s->family));
+        log_debug("Removing scope on link %s, protocol %s, family %s", s->link ? s->link->name : "*", dns_protocol_to_string(s->protocol), s->family == AF_UNSPEC ? "*" : af_to_name(s->family));
 
         dns_scope_llmnr_membership(s, false);
 
@@ -181,7 +182,7 @@ int dns_scope_tcp_socket(DnsScope *s) {
         _cleanup_close_ int fd = -1;
         union sockaddr_union sa = {};
         socklen_t salen;
-        int one, ifindex, ret;
+        int one, ret;
         DnsServer *srv;
         int r;
 
@@ -191,9 +192,6 @@ int dns_scope_tcp_socket(DnsScope *s) {
         if (!srv)
                 return -ESRCH;
 
-        if (s->link)
-                ifindex = s->link->ifindex;
-
         sa.sa.sa_family = srv->family;
         if (srv->family == AF_INET) {
                 sa.in.sin_port = htobe16(53);
@@ -202,7 +200,7 @@ int dns_scope_tcp_socket(DnsScope *s) {
         } else if (srv->family == AF_INET6) {
                 sa.in6.sin6_port = htobe16(53);
                 sa.in6.sin6_addr = srv->address.in6;
-                sa.in6.sin6_scope_id = ifindex;
+                sa.in6.sin6_scope_id = s->link ? s->link->ifindex : 0;
                 salen = sizeof(sa.in6);
         } else
                 return -EAFNOSUPPORT;