Skip to content
Snippets Groups Projects
Commit a361a810 authored by Felix Fietkau's avatar Felix Fietkau
Browse files

fix dnsmasq errors that occur on linux 2.4 if ipv6 is compiled as module, but not used

SVN-Revision: 12664
parent ebd40863
No related branches found
No related tags found
No related merge requests found
--- a/src/netlink.c
+++ b/src/netlink.c
@@ -116,6 +116,7 @@
ssize_t len;
static unsigned int seq = 0;
int family = AF_INET;
+ int ipv4_done = 0;
struct {
struct nlmsghdr nlh;
@@ -187,9 +188,12 @@
rta = RTA_NEXT(rta, len1);
}
- if (addr.s_addr && ipv4_callback)
+ if (addr.s_addr && ipv4_callback) {
if (!((*ipv4_callback)(addr, ifa->ifa_index, netmask, broadcast, parm)))
return 0;
+ else
+ ipv4_done = 1;
+ }
}
#ifdef HAVE_IPV6
else if (ifa->ifa_family == AF_INET6)
@@ -205,7 +209,7 @@
if (addrp && ipv6_callback)
if (!((*ipv6_callback)(addrp, ifa->ifa_index, ifa->ifa_index, parm)))
- return 0;
+ return ipv4_done;
}
#endif
}
--- a/src/network.c
+++ b/src/network.c
@@ -278,7 +278,7 @@
bind(tcpfd, (struct sockaddr *)&addr, sa_len(&addr)) == -1 ||
listen(tcpfd, 5) == -1 ||
bind(fd, (struct sockaddr *)&addr, sa_len(&addr)) == -1)
- return 0;
+ return 1;
l = safe_malloc(sizeof(struct listener));
l->fd = fd;
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment