if (inp->ipi6_ifindex != iface->ifindex)
fprintf(stderr, "invalid iface index %d != %d\n", ifindex, iface->ifindex);
- else if (!interface_valid_src((void *) &iface->v4_addr, (void *) &iface->v4_netmask, (void *) &from.sin6_addr, 16))
+ else if (!interface_valid_src((void *) &iface->v6_addr, (void *) &iface->v6_netmask, (void *) &from.sin6_addr, 16))
dns_handle_packet(iface, (struct sockaddr *) &from, from.sin6_port, buffer, len);
}
{
struct ip_mreqn mreq;
uint8_t ttl = 255;
- int yes = 1;
+ int no = 0;
struct sockaddr_in sa = { 0 };
int fd = iface->fd.fd;
return -1;
}
- if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP, &yes, sizeof(yes)) < 0)
+ if (setsockopt(fd, IPPROTO_IP, IP_MULTICAST_LOOP, &no, sizeof(no)) < 0)
fprintf(stderr, "ioctl failed: IP_MULTICAST_LOOP\n");
return 0;
{
struct ipv6_mreq mreq;
int ttl = 255;
- int yes = 1;
+ int no = 0;
struct sockaddr_in6 sa = { 0 };
int fd = iface->fd.fd;
return -1;
}
- if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &yes, sizeof(yes)) < 0)
+ if (setsockopt(fd, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &no, sizeof(no)) < 0)
fprintf(stderr, "ioctl failed: IPV6_MULTICAST_LOOP\n");
return 0;
uloop_fd_add(&iface->fd, ULOOP_READ);
if (iface->multicast) {
- dns_send_question(iface, "_services._dns-sd._udp.local", TYPE_PTR, 1);
+ dns_send_question(iface, "_services._dns-sd._udp.local", TYPE_PTR, 0);
announce_init(iface);
}
uloop_fd_add(&iface->fd, ULOOP_READ);
if (iface->multicast) {
- dns_send_question(iface, "_services._dns-sd._udp.local", TYPE_PTR, 1);
+ dns_send_question(iface, "_services._dns-sd._udp.local", TYPE_PTR, 0);
announce_init(iface);
}
vlist_for_each_element(&interfaces, iface, node)
if (iface->fd.fd > 0 && iface->multicast) {
- service_announce(iface, 0);
- service_reply_a(iface, 0);
+ dns_reply_a(iface, 0);
+ service_announce_services(iface, 0);
}
vlist_for_each_element(&interfaces, iface, node)
interface_close(iface);