summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2012-12-01 21:21:13 +0000
committerSimon Kelley <simon@thekelleys.org.uk>2012-12-01 21:21:13 +0000
commitd89fb4ed4fedb1d79900eb62ac66f4efbcad6a0f (patch)
treed5ad4a5ddafa7cff87464e845bf40c2f33d2a80a
parent295a54eed3b581b3b5887e773005c4fdd0d8f9b6 (diff)
downloaddnsmasq-d89fb4ed4fedb1d79900eb62ac66f4efbcad6a0f.tar.gz
Check interface for router advertisements.v2.64rc2
-rw-r--r--CHANGELOG4
-rw-r--r--src/dbus.c2
-rw-r--r--src/radv.c3
3 files changed, 7 insertions, 2 deletions
diff --git a/CHANGELOG b/CHANGELOG
index a39b178..87c19ce 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -54,6 +54,10 @@ version 2.64
Makefile tweak to do dependency checking on header files.
Thanks to Johan Peeters for the patch.
+
+ Check interface for outgoing unsolicited router
+ advertisements, rather than relying on interface address
+ configuration. Thanks to Gene Czarinski for the patch.
version 2.63
diff --git a/src/dbus.c b/src/dbus.c
index cbcc91a..3bcd68a 100644
--- a/src/dbus.c
+++ b/src/dbus.c
@@ -327,7 +327,7 @@ static DBusMessage* dbus_read_servers_ex(DBusMessage *message, int strings)
const char *str = NULL;
union mysockaddr addr, source_addr;
char interface[IF_NAMESIZE];
- char *str_addr, *str_domain;
+ char *str_addr, *str_domain = NULL;
if (strings)
{
diff --git a/src/radv.c b/src/radv.c
index d1f5268..8ab0c42 100644
--- a/src/radv.c
+++ b/src/radv.c
@@ -482,7 +482,8 @@ time_t periodic_ra(time_t now)
ever be able to send ra's and satistfy it. */
if (iface_enumerate(AF_INET6, &param, iface_search))
context->ra_time = 0;
- else if (indextoname(daemon->icmp6fd, param.iface, interface))
+ else if (indextoname(daemon->icmp6fd, param.iface, interface) &&
+ iface_check(AF_LOCAL, NULL, interface))
send_ra(param.iface, interface, NULL);
}