From d89fb4ed4fedb1d79900eb62ac66f4efbcad6a0f Mon Sep 17 00:00:00 2001 From: Simon Kelley Date: Sat, 1 Dec 2012 21:21:13 +0000 Subject: [PATCH] Check interface for router advertisements. --- CHANGELOG | 4 ++++ src/dbus.c | 2 +- src/radv.c | 3 ++- 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, ¶m, 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); }