[zebra] MTU change should propogate to zserv client on BSD/Solaris

2007-04-10 Paul Jakma <paul.jakma@sun.com>

	* ioctl{_solaris,}.c: (if_get_mtu) Ping clients via
          zebra_interface_up_update if MTU is changed.
diff --git a/zebra/ioctl_solaris.c b/zebra/ioctl_solaris.c
index 2f05bf1..f68ea56 100644
--- a/zebra/ioctl_solaris.c
+++ b/zebra/ioctl_solaris.c
@@ -156,6 +156,7 @@
 {
   struct lifreq lifreq;
   int ret;
+  u_char changed = 0;
   
   if (ifp->flags & IFF_IPV4)
     {
@@ -170,12 +171,17 @@
       else
         {
           ifp->mtu = lifreq.lifr_metric;
+          changed = 1;
         }
     }
 
 #ifdef HAVE_IPV6
   if ((ifp->flags & IFF_IPV6) == 0)
-    return;
+    {
+      if (changed)
+        zebra_interface_up_update(ifp);
+      return;
+    }
     
   memset(&lifreq, 0, sizeof(lifreq));
   lifreq_set_name (&lifreq, ifp->name);
@@ -189,7 +195,11 @@
   else
     {
       ifp->mtu6 = lifreq.lifr_metric;
+      changed = 1
     }
+  
+  if (changed)
+    zebra_interface_up_update(ifp);
 #endif /* HAVE_IPV6 */
 }