]> git.proxmox.com Git - mirror_frr.git/blobdiff - zebra/rt_socket.c
[autoconf] bugs 162,303,178: Fix 'present but can not be compiled' warnings
[mirror_frr.git] / zebra / rt_socket.c
index f447d8ca433c06cf5b54a6e35921be9b889d40be..0182fbd682860036bee7938c3492f73a7cdfc36b 100644 (file)
 
 #include "zebra/debug.h"
 #include "zebra/rib.h"
+#include "zebra/rt.h"
 
 extern struct zebra_privs_t zserv_privs;
 
-int
-rtm_write (int message,
-          union sockunion *dest,
-          union sockunion *mask,
-          union sockunion *gate,
-          unsigned int index,
-          int zebra_flags,
-          int metric);
+/* kernel socket export */
+extern int rtm_write (int message, union sockunion *dest,
+                      union sockunion *mask, union sockunion *gate,
+                      unsigned int index, int zebra_flags, int metric);
 
 /* Adjust netmask socket length. Return value is a adjusted sin_len
    value. */
-int
+static int
 sin_masklen (struct in_addr mask)
 {
   char *p, *lim;
@@ -67,7 +64,7 @@ sin_masklen (struct in_addr mask)
 }
 
 /* Interface between zebra message and rtm message. */
-int
+static int
 kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib, int family)
 
 {
@@ -81,18 +78,18 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib, int family)
 
   memset (&sin_dest, 0, sizeof (struct sockaddr_in));
   sin_dest.sin_family = AF_INET;
-#ifdef HAVE_SIN_LEN
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
   sin_dest.sin_len = sizeof (struct sockaddr_in);
-#endif /* HAVE_SIN_LEN */
+#endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
   sin_dest.sin_addr = p->u.prefix4;
 
   memset (&sin_mask, 0, sizeof (struct sockaddr_in));
 
   memset (&sin_gate, 0, sizeof (struct sockaddr_in));
   sin_gate.sin_family = AF_INET;
-#ifdef HAVE_SIN_LEN
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
   sin_gate.sin_len = sizeof (struct sockaddr_in);
-#endif /* HAVE_SIN_LEN */
+#endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
 
   /* Make gateway. */
   for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
@@ -149,10 +146,10 @@ kernel_rtm_ipv4 (int cmd, struct prefix *p, struct rib *rib, int family)
          else
            {
              masklen2ip (p->prefixlen, &sin_mask.sin_addr);
-             sin_mask.sin_family = AF_UNSPEC;
-#ifdef HAVE_SIN_LEN
+             sin_mask.sin_family = AF_INET;
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
              sin_mask.sin_len = sin_masklen (sin_mask.sin_addr);
-#endif /* HAVE_SIN_LEN */
+#endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
              mask = &sin_mask;
            }
        }
@@ -218,7 +215,7 @@ kernel_delete_ipv4 (struct prefix *p, struct rib *rib)
 #ifdef HAVE_IPV6
 
 /* Calculate sin6_len value for netmask socket value. */
-int
+static int
 sin6_masklen (struct in6_addr mask)
 {
   struct sockaddr_in6 sin6;
@@ -246,7 +243,7 @@ sin6_masklen (struct in6_addr mask)
 }
 
 /* Interface between zebra message and rtm message. */
-int
+static int
 kernel_rtm_ipv6 (int message, struct prefix_ipv6 *dest,
                 struct in6_addr *gate, int index, int flags)
 {
@@ -290,7 +287,7 @@ kernel_rtm_ipv6 (int message, struct prefix_ipv6 *dest,
   else
     {
       masklen2ip6 (dest->prefixlen, &sin_mask.sin6_addr);
-      sin_mask.sin6_family = AF_UNSPEC;
+      sin_mask.sin6_family = AF_INET6;
 #ifdef SIN6_LEN
       sin_mask.sin6_len = sin6_masklen (sin_mask.sin6_addr);
 #endif /* SIN6_LEN */
@@ -307,7 +304,7 @@ kernel_rtm_ipv6 (int message, struct prefix_ipv6 *dest,
 }
 
 /* Interface between zebra message and rtm message. */
-int
+static int
 kernel_rtm_ipv6_multipath (int cmd, struct prefix *p, struct rib *rib,
                           int family)
 {
@@ -330,9 +327,9 @@ kernel_rtm_ipv6_multipath (int cmd, struct prefix *p, struct rib *rib,
 
   memset (&sin_gate, 0, sizeof (struct sockaddr_in6));
   sin_gate.sin6_family = AF_INET6;
-#ifdef HAVE_SIN_LEN
+#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
   sin_gate.sin6_len = sizeof (struct sockaddr_in6);
-#endif /* HAVE_SIN_LEN */
+#endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
 
   /* Make gateway. */
   for (nexthop = rib->nexthop; nexthop; nexthop = nexthop->next)
@@ -400,7 +397,7 @@ kernel_rtm_ipv6_multipath (int cmd, struct prefix *p, struct rib *rib,
       else
        {
          masklen2ip6 (p->prefixlen, &sin_mask.sin6_addr);
-         sin_mask.sin6_family = AF_UNSPEC;
+         sin_mask.sin6_family = AF_INET6;
 #ifdef SIN6_LEN
          sin_mask.sin6_len = sin6_masklen (sin_mask.sin6_addr);
 #endif /* SIN6_LEN */
@@ -468,7 +465,7 @@ kernel_delete_ipv6 (struct prefix *p, struct rib *rib)
 /* Delete IPv6 route from the kernel. */
 int
 kernel_delete_ipv6_old (struct prefix_ipv6 *dest, struct in6_addr *gate,
-                   int index, int flags, int table)
+                       unsigned int index, int flags, int table)
 {
   int route;