diff --git a/src/addr_util.cpp b/src/addr_util.cpp index 67a0d2cf..c62ab248 100644 --- a/src/addr_util.cpp +++ b/src/addr_util.cpp @@ -149,7 +149,8 @@ std::vector getifaddr_list(std::vector mask_cfg, bool } int family = ifa->ifa_addr->sa_family; if ((family == AF_INET || family == AF_INET6 && include_v6) && - (ifa->ifa_flags & (IFF_UP | IFF_RUNNING | IFF_LOOPBACK)) == (IFF_UP | IFF_RUNNING)) + // Do not skip loopback addresses if the address filter is specified + (ifa->ifa_flags & (IFF_UP | IFF_RUNNING | (masks.size() ? 0 : IFF_LOOPBACK))) == (IFF_UP | IFF_RUNNING)) { void *addr_ptr; if (family == AF_INET)