Extend /4 and /6 syntax to --interface-name
diff --git a/src/network.c b/src/network.c
index 51d9d53..5454d31 100644
--- a/src/network.c
+++ b/src/network.c
@@ -330,7 +330,8 @@
/* Update addresses from interface_names. These are a set independent
of the set we're listening on. */
for (int_name = daemon->int_names; int_name; int_name = int_name->next)
- if (strncmp(label, int_name->intr, IF_NAMESIZE) == 0)
+ if (strncmp(label, int_name->intr, IF_NAMESIZE) == 0 &&
+ (addr->sa.sa_family == int_name->family || int_name->family == 0))
{
if (param->spare)
{
@@ -915,7 +916,7 @@
int advice = 0;
for (iface = daemon->interfaces; iface; iface = iface->next)
- if (option_bool(OPT_NOWILD) && !iface->dns_auth)
+ if (!iface->dns_auth)
{
int warn = 0;
if (iface->addr.sa.sa_family == AF_INET)
@@ -943,15 +944,24 @@
{
iface->warned = advice = 1;
my_syslog(LOG_WARNING,
- _("LOUD WARNING: listening on %s may accept requests via interfaces other than %s. "),
+ _("LOUD WARNING: listening on %s may accept requests via interfaces other than %s"),
daemon->addrbuff, iface->name);
}
}
if (advice)
- my_syslog(LOG_WARNING, _("LOUD WARNING: use --bind-dynamic rather than --bind-interfaces to avoid DNS amplification attacks via these interface(s)."));
+ my_syslog(LOG_WARNING, _("LOUD WARNING: use --bind-dynamic rather than --bind-interfaces to avoid DNS amplification attacks via these interface(s)"));
}
+void warn_int_names(void)
+{
+ struct interface_name *intname;
+
+ for (intname = daemon->int_names; intname; intname = intname->next)
+ if (!intname->addr)
+ my_syslog(LOG_WARNING, _("warning: no addresses found for interface %s"), intname->intr);
+}
+
int is_dad_listeners(void)
{
struct irec *iface;