]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: set multicast membership for mDNS sockets
authorDmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
Fri, 2 Dec 2016 12:17:15 +0000 (14:17 +0200)
committerDmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
Thu, 19 Jan 2017 09:51:21 +0000 (11:51 +0200)
Signed-off-by: Dmitry Rozhkov <dmitry.rozhkov@linux.intel.com>
src/resolve/resolved-dns-scope.c

index 8dbc7f623b8faa576e8facd025ebf8022ab1dd82..92171107dfd162b1ebfd37ffb936dcd789571fd8 100644 (file)
@@ -549,7 +549,11 @@ static int dns_scope_multicast_membership(DnsScope *s, bool b, struct in_addr in
                         .imr_ifindex = s->link->ifindex,
                 };
 
-                fd = manager_llmnr_ipv4_udp_fd(s->manager);
+                if (s->protocol == DNS_PROTOCOL_LLMNR)
+                        fd = manager_llmnr_ipv4_udp_fd(s->manager);
+                else
+                        fd = manager_mdns_ipv4_fd(s->manager);
+
                 if (fd < 0)
                         return fd;
 
@@ -568,7 +572,11 @@ static int dns_scope_multicast_membership(DnsScope *s, bool b, struct in_addr in
                         .ipv6mr_interface = s->link->ifindex,
                 };
 
-                fd = manager_llmnr_ipv6_udp_fd(s->manager);
+                if (s->protocol == DNS_PROTOCOL_LLMNR)
+                        fd = manager_llmnr_ipv6_udp_fd(s->manager);
+                else
+                        fd = manager_mdns_ipv6_fd(s->manager);
+
                 if (fd < 0)
                         return fd;