Fixed ioctl_solaris.c:if_get_mtu() for IPv6'less operation
diff --git a/zebra/ChangeLog b/zebra/ChangeLog
index 02eede8..abe8199 100644
--- a/zebra/ChangeLog
+++ b/zebra/ChangeLog
@@ -1,3 +1,9 @@
+2007-08-21 Denis Ovsienko
+
+ * ioctl_solaris.c: (if_get_mtu) Don't break things if either
+ IPv6 was disabled at compile time or the current interface
+ hasn't it enabled.
+
2007-08-17 Denis Ovsienko
* kernel_socket.c: (rtm_read) Ignore any routing socket messages
diff --git a/zebra/ioctl_solaris.c b/zebra/ioctl_solaris.c
index 6e25d87..6c1c254 100644
--- a/zebra/ioctl_solaris.c
+++ b/zebra/ioctl_solaris.c
@@ -176,31 +176,27 @@
}
#ifdef HAVE_IPV6
- if ((ifp->flags & IFF_IPV6) == 0)
- {
- if (changed)
- zebra_interface_up_update(ifp);
- return;
- }
-
- memset(&lifreq, 0, sizeof(lifreq));
- lifreq_set_name (&lifreq, ifp->name);
+ if (ifp->flags & IFF_IPV6)
+ {
+ memset(&lifreq, 0, sizeof(lifreq));
+ lifreq_set_name (&lifreq, ifp->name);
- ret = AF_IOCTL (AF_INET6, SIOCGLIFMTU, (caddr_t) & lifreq);
- if (ret < 0)
+ ret = AF_IOCTL (AF_INET6, SIOCGLIFMTU, (caddr_t) & lifreq);
+ if (ret < 0)
{
zlog_info ("Can't lookup mtu6 on %s by ioctl(SIOCGIFMTU)", ifp->name);
ifp->mtu6 = -1;
}
- else
+ else
{
ifp->mtu6 = lifreq.lifr_metric;
changed = 1;
}
-
+ }
+#endif /* HAVE_IPV6 */
+
if (changed)
zebra_interface_up_update(ifp);
-#endif /* HAVE_IPV6 */
}
/* Set up interface's address, netmask (and broadcast? ).