]> git.puffer.fish Git - matthieu/frr.git/commitdiff
2004-05-11 Paul Jakma <paul@dishone.st>
authorpaul <paul>
Tue, 11 May 2004 11:31:07 +0000 (11:31 +0000)
committerpaul <paul>
Tue, 11 May 2004 11:31:07 +0000 (11:31 +0000)
        * ioctl.h: Add if_ioctl_ipv6 prototype and AF_IOCTL for SOLARIS_IPV6
        * kernel_socket.c: Fix SAROUNDUP, compiler doesnt like do..while
          RHS in assignments :)
        * redistribute.c: (zebra_interface_delete_update) only used
          if RTM_IFANNOUNCE and NETLINK is available.

zebra/ChangeLog
zebra/ioctl.h
zebra/kernel_socket.c
zebra/redistribute.c

index d453aea1f1d0a43b6b7c7442a2865100546ac7ed..1b1e1a992a73e36b2cc42ea22e2df9715f4b205d 100644 (file)
@@ -4,7 +4,12 @@
        * if_ioctl_solaris.c: Fixup some erroneous privilege changes and
          add privs.h header.
        * ioctl_solaris.c: ditto
-        
+       * ioctl.h: Add if_ioctl_ipv6 prototype and AF_IOCTL for SOLARIS_IPV6
+       * kernel_socket.c: Fix SAROUNDUP, compiler doesnt like do..while
+         RHS in assignments :)
+       * redistribute.c: (zebra_interface_delete_update) only used
+         if RTM_IFANNOUNCE and NETLINK is available.
+                
 2004-05-09 Paul Jakma <paul@dishone.st>
 
        * zserv.c: (zsend_route_multipath) Set the nexthop_num
index 157fc44ecba17362d7e1014fef2493dce7b74099..eadc69a0131d1179a3dbcb7880210a4410cd607c 100644 (file)
@@ -40,7 +40,15 @@ void if_get_mtu (struct interface *);
 #ifdef HAVE_IPV6
 int if_prefix_add_ipv6 (struct interface *, struct connected *);
 int if_prefix_delete_ipv6 (struct interface *, struct connected *);
-
 #endif /* HAVE_IPV6 */
 
+#ifdef SOLARIS_IPV6
+int if_ioctl_ipv6(u_long, caddr_t);
+struct connected *if_lookup_linklocal( struct interface *);
+
+#define AF_IOCTL(af, request, buffer) \
+        ((af) == AF_INET? if_ioctl(request, buffer) : \
+                          if_ioctl_ipv6(request, buffer))
+#endif /* SOLARIS_IPV6 */
+
 #endif /* _ZEBRA_IOCTL_H */
index 9dd261572f8bc66dbd6174f93110f7a6ae0179a3..20c6cc8309e9a9d881e6e020bace7140eb933997 100644 (file)
@@ -63,14 +63,12 @@ extern struct zebra_t zebrad;
  * but round them up nonetheless.
  */
 #define SAROUNDUP(X) \
-    do { \
     (((struct sockaddr *)(X))->sa_family == AF_INET ?   \
       ROUNDUP(sizeof(struct sockaddr_in)):\
       (((struct sockaddr *)(X))->sa_family == AF_INET6 ? \
        ROUNDUP(sizeof(struct sockaddr_in6)) :  \
        (((struct sockaddr *)(X))->sa_family == AF_LINK ? \
-         ROUNDUP(sizeof(struct sockaddr_dl)) : sizeof(struct sockaddr)))) \
-    } while (0)
+         ROUNDUP(sizeof(struct sockaddr_dl)) : sizeof(struct sockaddr))))
 #else /* HAVE_IPV6 */ 
 #define SAROUNDUP(X) \
       (((struct sockaddr *)(X))->sa_family == AF_INET ?   \
index ae61a4488edeae6f5828e23b83f9926be2f66438..a4335c1709a5839ce9166d851a957170b22d745e 100644 (file)
@@ -347,6 +347,12 @@ zebra_interface_add_update (struct interface *ifp)
        zsend_interface_add (client, ifp);
 }
 
+/*
+ * This function is only called  when support for 
+ * RTM_IFANNOUNCE or AF_NETLINK sockets (RTM_DELLINK message)
+ * is available. It is not called on Solaris.
+ */
+#if (defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK))
 void
 zebra_interface_delete_update (struct interface *ifp)
 {
@@ -361,6 +367,7 @@ zebra_interface_delete_update (struct interface *ifp)
       if (client->ifinfo)
        zsend_interface_delete (client, ifp);
 }
+#endif /* defined(RTM_IFANNOUNCE) || defined(HAVE_NETLINK) */
 
 /* Interface address addition. */
 void