--- embedaddon/dnsmasq/src/ipset.c 2014/06/15 16:31:38 1.1.1.2 +++ embedaddon/dnsmasq/src/ipset.c 2016/11/02 09:57:01 1.1.1.3 @@ -16,7 +16,7 @@ #include "dnsmasq.h" -#ifdef HAVE_IPSET +#if defined(HAVE_IPSET) && defined(HAVE_LINUX_NETWORK) #include #include @@ -121,7 +121,6 @@ static int new_add_to_ipset(const char *setname, const struct my_nlattr *nested[2]; uint8_t proto; int addrsz = INADDRSZ; - ssize_t rc; #ifdef HAVE_IPV6 if (af == AF_INET6) @@ -162,9 +161,10 @@ static int new_add_to_ipset(const char *setname, const nested[1]->nla_len = (void *)buffer + NL_ALIGN(nlh->nlmsg_len) - (void *)nested[1]; nested[0]->nla_len = (void *)buffer + NL_ALIGN(nlh->nlmsg_len) - (void *)nested[0]; - while ((rc = sendto(ipset_sock, buffer, nlh->nlmsg_len, 0, - (struct sockaddr *)&snl, sizeof(snl))) == -1 && retry_send()); - return rc; + while (retry_send(sendto(ipset_sock, buffer, nlh->nlmsg_len, 0, + (struct sockaddr *)&snl, sizeof(snl)))); + + return errno == 0 ? 0 : -1; }