X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fmdnsd.git;a=blobdiff_plain;f=interface.c;h=9c5b048a008cb82fee130381fb019d2520f0a2c7;hp=a984be90a7cbf2de92a047f97ba394ddf6c43d86;hb=HEAD;hpb=ce7e9e939dbf4e100bfece5a46b3ef17fd99d034 diff --git a/interface.c b/interface.c index a984be9..9c5b048 100644 --- a/interface.c +++ b/interface.c @@ -233,16 +233,13 @@ read_socket4(struct uloop_fd *u, unsigned int events) } } - if (ttl != 255) - return; - if (debug > 1) { char buf[256]; fprintf(stderr, "RX ipv4: %s\n", iface->name); fprintf(stderr, " multicast: %d\n", iface->multicast); inet_ntop(AF_INET, &from.sin_addr, buf, 256); - fprintf(stderr, " src %s:%d\n", buf, from.sin_port); + fprintf(stderr, " src %s:%d\n", buf, ntohs(from.sin_port)); inet_ntop(AF_INET, &inp->ipi_spec_dst, buf, 256); fprintf(stderr, " dst %s\n", buf); inet_ntop(AF_INET, &inp->ipi_addr, buf, 256); @@ -252,7 +249,7 @@ read_socket4(struct uloop_fd *u, unsigned int events) if (inp->ipi_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.sin_addr, 4)) - dns_handle_packet(iface, (struct sockaddr *) &from, from.sin_port, buffer, len); + dns_handle_packet(iface, (struct sockaddr *) &from, ntohs(from.sin_port), buffer, len); } static void @@ -310,16 +307,13 @@ read_socket6(struct uloop_fd *u, unsigned int events) } } - if (ttl != 255) - return; - if (debug > 1) { char buf[256]; fprintf(stderr, "RX ipv6: %s\n", iface->name); fprintf(stderr, " multicast: %d\n", iface->multicast); inet_ntop(AF_INET6, &from.sin6_addr, buf, 256); - fprintf(stderr, " src %s:%d\n", buf, from.sin6_port); + fprintf(stderr, " src %s:%d\n", buf, ntohs(from.sin6_port)); inet_ntop(AF_INET6, &inp->ipi6_addr, buf, 256); fprintf(stderr, " dst %s\n", buf); } @@ -327,7 +321,7 @@ read_socket6(struct uloop_fd *u, unsigned int events) if (inp->ipi6_ifindex != iface->ifindex) fprintf(stderr, "invalid iface index %d != %d\n", ifindex, iface->ifindex); 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); + dns_handle_packet(iface, (struct sockaddr *) &from, ntohs(from.sin6_port), buffer, len); } static int @@ -359,7 +353,7 @@ interface_mcast_setup4(struct interface *iface) setsockopt(fd, IPPROTO_IP, IP_DROP_MEMBERSHIP, &mreq, sizeof(mreq)); if (setsockopt(fd, IPPROTO_IP, IP_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) { - fprintf(stderr, "failed to join multicast group: %s\n", strerror(errno)); + fprintf(stderr, "failed to join multicast group: %m\n"); close(fd); fd = -1; return -1; @@ -393,7 +387,7 @@ interface_socket_setup6(struct interface *iface) setsockopt(fd, IPPROTO_IPV6, IPV6_LEAVE_GROUP, &mreq, sizeof(mreq)); if (setsockopt(fd, IPPROTO_IPV6, IPV6_ADD_MEMBERSHIP, &mreq, sizeof(mreq)) < 0) { - fprintf(stderr, "failed to join multicast group: %s\n", strerror(errno)); + fprintf(stderr, "failed to join multicast group: %m\n"); close(fd); fd = -1; return -1; @@ -415,7 +409,7 @@ reconnect_socket4(struct uloop_timeout *timeout) iface->fd.fd = usock(USOCK_UDP | USOCK_SERVER | USOCK_NONBLOCK | USOCK_IPV4ONLY, (iface->multicast) ? (iface->mcast_addr) : (iface->v4_addrs), "5353"); if (iface->fd.fd < 0) { - fprintf(stderr, "failed to add listener %s: %s\n", iface->mcast_addr, strerror(errno)); + fprintf(stderr, "failed to add listener %s: %m\n", iface->mcast_addr); goto retry; } @@ -441,7 +435,7 @@ reconnect_socket4(struct uloop_timeout *timeout) uloop_fd_add(&iface->fd, ULOOP_READ); if (iface->multicast) { - dns_send_question(iface, C_DNS_SD, TYPE_PTR, 0); + dns_send_question(iface, NULL, C_DNS_SD, TYPE_PTR, 0); announce_init(iface); } @@ -462,7 +456,7 @@ reconnect_socket6(struct uloop_timeout *timeout) snprintf(mcast_addr, sizeof(mcast_addr), "%s%%%s", (iface->multicast) ? (iface->mcast_addr) : (iface->v6_addrs), iface->name); iface->fd.fd = usock(USOCK_UDP | USOCK_SERVER | USOCK_NONBLOCK | USOCK_IPV6ONLY, mcast_addr, "5353"); if (iface->fd.fd < 0) { - fprintf(stderr, "failed to add listener %s: %s\n", mcast_addr, strerror(errno)); + fprintf(stderr, "failed to add listener %s: %m\n", mcast_addr); goto retry; } @@ -489,7 +483,7 @@ reconnect_socket6(struct uloop_timeout *timeout) uloop_fd_add(&iface->fd, ULOOP_READ); if (iface->multicast) { - dns_send_question(iface, C_DNS_SD, TYPE_PTR, 0); + dns_send_question(iface, NULL, C_DNS_SD, TYPE_PTR, 0); announce_init(iface); }