Fix FTBS on FreeBSD due to Linux-specific optimisation of if_nametoindex()

This commit is contained in:
Simon Kelley
2021-03-19 22:24:08 +00:00
parent 023ace8e54
commit 1de6bbc108

View File

@@ -720,13 +720,17 @@ int enumerate_interfaces(int reset)
to a server is specified by an interface, so cache them.
Update the cache here. */
for (serv = daemon->servers; serv; serv = serv->next)
if (strlen(serv->interface) != 0)
if (serv->interface[0] != 0)
{
struct ifreq ifr;
#ifdef HAVE_LINUX_NETWORK
struct ifreq ifr;
safe_strncpy(ifr.ifr_name, serv->interface, IF_NAMESIZE);
if (ioctl(param.fd, SIOCGIFINDEX, &ifr) != -1)
serv->ifindex = ifr.ifr_ifindex;
safe_strncpy(ifr.ifr_name, serv->interface, IF_NAMESIZE);
if (ioctl(param.fd, SIOCGIFINDEX, &ifr) != -1)
serv->ifindex = ifr.ifr_ifindex;
#else
serv->ifindex = if_nametoindex(serv->interface);
#endif
}
again: