summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2016-08-04 15:07:33 +0200
committerDonald Sharp <sharpd@cumulusnetwroks.com>2016-08-08 03:05:26 +0200
commit8f500a1cf156c6033f2e0b1ef40db09f9d6f34a2 (patch)
tree9d115beedfdb9638e0dbc51b76bdec2f59752d0e
parentzebra: create an abstraction layer for netlink_neigh_update() (diff)
downloadfrr-8f500a1cf156c6033f2e0b1ef40db09f9d6f34a2.tar.xz
frr-8f500a1cf156c6033f2e0b1ef40db09f9d6f34a2.zip
*: fix trivial build errors on *BSD
Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
-rw-r--r--bgpd/bgpd.c4
-rw-r--r--cumulus/start-stop-daemon.c7
-rw-r--r--pimd/test_igmpv3_join.c2
-rw-r--r--zebra/if_ioctl.c2
-rw-r--r--zebra/kernel_socket.c20
-rw-r--r--zebra/zebra_ptm.c5
-rw-r--r--zebra/zebra_rib.c12
7 files changed, 33 insertions, 19 deletions
diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c
index 1a5270874..b3721a03e 100644
--- a/bgpd/bgpd.c
+++ b/bgpd/bgpd.c
@@ -1315,7 +1315,7 @@ bgp_peer_conf_if_to_su_update_v4 (struct peer *peer, struct interface *ifp)
else if (s_addr % 4 == 2)
peer->su.sin.sin_addr.s_addr = htonl(s_addr-1);
#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
- peer->su->sin.sin_len = sizeof(struct sockaddr_in);
+ peer->su.sin.sin_len = sizeof(struct sockaddr_in);
#endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
return 1;
}
@@ -1328,7 +1328,7 @@ bgp_peer_conf_if_to_su_update_v4 (struct peer *peer, struct interface *ifp)
else
peer->su.sin.sin_addr.s_addr = htonl(s_addr-1);
#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN
- peer->su->sin.sin_len = sizeof(struct sockaddr_in);
+ peer->su.sin.sin_len = sizeof(struct sockaddr_in);
#endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */
return 1;
}
diff --git a/cumulus/start-stop-daemon.c b/cumulus/start-stop-daemon.c
index ea63fbc21..4d447d905 100644
--- a/cumulus/start-stop-daemon.c
+++ b/cumulus/start-stop-daemon.c
@@ -56,8 +56,9 @@
#include <limits.h>
#include <assert.h>
#include <ctype.h>
-#include <error.h>
+#ifdef linux
#include <linux/sched.h>
+#endif
static int testmode = 0;
static int quietmode = 0;
@@ -241,6 +242,7 @@ next_dirname(const char *s)
return cur;
}
+#ifdef linux
static void
add_namespace(const char *path)
{
@@ -270,6 +272,7 @@ add_namespace(const char *path)
namespace->nstype = nstype;
LIST_INSERT_HEAD(&namespace_head, namespace, list);
}
+#endif
#ifdef HAVE_LXC
static void
@@ -567,7 +570,9 @@ parse_options(int argc, char * const *argv)
changeroot = optarg;
break;
case 'd': /* --namespace /.../<ipcns>|<netns>|<utsns>/name */
+#ifdef linux
add_namespace(optarg);
+#endif
break;
case 'N': /* --nice */
nicelevel = atoi(optarg);
diff --git a/pimd/test_igmpv3_join.c b/pimd/test_igmpv3_join.c
index fe64fbc00..7fcf38bce 100644
--- a/pimd/test_igmpv3_join.c
+++ b/pimd/test_igmpv3_join.c
@@ -20,6 +20,8 @@
$QuaggaId: $Format:%an, %ai, %h$ $
*/
+#include <zebra.h>
+
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
diff --git a/zebra/if_ioctl.c b/zebra/if_ioctl.c
index 88fea3427..0a9807b8b 100644
--- a/zebra/if_ioctl.c
+++ b/zebra/if_ioctl.c
@@ -427,7 +427,7 @@ interface_info_ioctl ()
struct listnode *node, *nnode;
struct interface *ifp;
- for (ALL_LIST_ELEMENTS (iflist, node, nnode, ifp))
+ for (ALL_LIST_ELEMENTS (vrf_iflist (VRF_DEFAULT), node, nnode, ifp))
{
if_get_index (ifp);
#ifdef SIOCGIFHWADDR
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index f9df983ab..23224dc24 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -927,7 +927,7 @@ rtm_read (struct rt_msghdr *rtm)
case ZEBRA_RIB_FOUND_EXACT: /* RIB RR == FIB RR */
zlog_debug ("%s: %s %s: done Ok",
__func__, lookup (rtm_type_str, rtm->rtm_type), buf);
- rib_lookup_and_dump (&p);
+ rib_lookup_and_dump (&p, VRF_DEFAULT);
return;
break;
}
@@ -940,18 +940,18 @@ rtm_read (struct rt_msghdr *rtm)
case ZEBRA_RIB_FOUND_EXACT:
zlog_debug ("%s: %s %s: desync: RR is still in RIB, while already not in FIB",
__func__, lookup (rtm_type_str, rtm->rtm_type), buf);
- rib_lookup_and_dump (&p);
+ rib_lookup_and_dump (&p, VRF_DEFAULT);
break;
case ZEBRA_RIB_FOUND_CONNECTED:
case ZEBRA_RIB_FOUND_NOGATE:
zlog_debug ("%s: %s %s: desync: RR is still in RIB, plus gate differs",
__func__, lookup (rtm_type_str, rtm->rtm_type), buf);
- rib_lookup_and_dump (&p);
+ rib_lookup_and_dump (&p, VRF_DEFAULT);
break;
case ZEBRA_RIB_NOTFOUND: /* RIB RR == FIB RR */
zlog_debug ("%s: %s %s: done Ok",
__func__, lookup (rtm_type_str, rtm->rtm_type), buf);
- rib_lookup_and_dump (&p);
+ rib_lookup_and_dump (&p, VRF_DEFAULT);
return;
break;
}
@@ -968,7 +968,7 @@ rtm_read (struct rt_msghdr *rtm)
*/
if (rtm->rtm_type == RTM_CHANGE)
rib_delete_ipv4 (ZEBRA_ROUTE_KERNEL, 0, zebra_flags, &p,
- NULL, 0, VRF_DEFAULT, SAFI_UNICAST);
+ NULL, 0, VRF_DEFAULT, 0, SAFI_UNICAST);
if (rtm->rtm_type == RTM_GET
|| rtm->rtm_type == RTM_ADD
@@ -976,8 +976,8 @@ rtm_read (struct rt_msghdr *rtm)
rib_add_ipv4 (ZEBRA_ROUTE_KERNEL, 0, zebra_flags,
&p, &gate.sin.sin_addr, NULL, 0, VRF_DEFAULT, 0, 0, 0, SAFI_UNICAST);
else
- rib_delete_ipv4 (ZEBRA_ROUTE_KERNEL, 0 zebra_flags,
- &p, &gate.sin.sin_addr, 0, VRF_DEFAULT, SAFI_UNICAST);
+ rib_delete_ipv4 (ZEBRA_ROUTE_KERNEL, 0, zebra_flags,
+ &p, &gate.sin.sin_addr, 0, VRF_DEFAULT, 0, SAFI_UNICAST);
}
#ifdef HAVE_IPV6
if (dest.sa.sa_family == AF_INET6)
@@ -1010,16 +1010,16 @@ rtm_read (struct rt_msghdr *rtm)
*/
if (rtm->rtm_type == RTM_CHANGE)
rib_delete_ipv6 (ZEBRA_ROUTE_KERNEL, 0, zebra_flags, &p,
- NULL, 0, VRF_DEFAULT, SAFI_UNICAST);
+ NULL, 0, VRF_DEFAULT, 0, SAFI_UNICAST);
if (rtm->rtm_type == RTM_GET
|| rtm->rtm_type == RTM_ADD
|| rtm->rtm_type == RTM_CHANGE)
rib_add_ipv6 (ZEBRA_ROUTE_KERNEL, 0, zebra_flags,
- &p, &gate.sin6.sin6_addr, ifindex, VRF_DEFAULT, 0, 0, SAFI_UNICAST);
+ &p, &gate.sin6.sin6_addr, ifindex, VRF_DEFAULT, 0, 0, 0, SAFI_UNICAST);
else
rib_delete_ipv6 (ZEBRA_ROUTE_KERNEL, 0, zebra_flags,
- &p, &gate.sin6.sin6_addr, ifindex, VRF_DEFAULT, SAFI_UNICAST);
+ &p, &gate.sin6.sin6_addr, ifindex, VRF_DEFAULT, 0, SAFI_UNICAST);
}
#endif /* HAVE_IPV6 */
}
diff --git a/zebra/zebra_ptm.c b/zebra/zebra_ptm.c
index 931fc73e4..133b0fc2e 100644
--- a/zebra/zebra_ptm.c
+++ b/zebra/zebra_ptm.c
@@ -31,6 +31,7 @@
#include "command.h"
#include "stream.h"
#include "ptm_lib.h"
+#include "network.h"
#include "buffer.h"
#include "zebra/zebra_ptm_redistribute.h"
#include "bfd.h"
@@ -383,9 +384,11 @@ zebra_ptm_socket_init (void)
ptm_cb.ptm_sock = -1;
- sock = socket (PF_UNIX, (SOCK_STREAM | SOCK_NONBLOCK), 0);
+ sock = socket (PF_UNIX, SOCK_STREAM, 0);
if (sock < 0)
return -1;
+ if (set_nonblocking(sock) < 0)
+ return -1;
/* Make server socket. */
memset (&addr, 0, sizeof (struct sockaddr_un));
diff --git a/zebra/zebra_rib.c b/zebra/zebra_rib.c
index 8a2728a89..3aa9356fe 100644
--- a/zebra/zebra_rib.c
+++ b/zebra/zebra_rib.c
@@ -119,13 +119,17 @@ _rnode_zlog(const char *_func, vrf_id_t vrf_id, struct route_node *rn, int prior
int
is_zebra_valid_kernel_table(u_int32_t table_id)
{
- if ((table_id > ZEBRA_KERNEL_TABLE_MAX) ||
- (table_id == RT_TABLE_UNSPEC) ||
+ if ((table_id > ZEBRA_KERNEL_TABLE_MAX))
+ return 0;
+
+#ifdef linux
+ if ((table_id == RT_TABLE_UNSPEC) ||
(table_id == RT_TABLE_LOCAL) ||
(table_id == RT_TABLE_COMPAT))
return 0;
- else
- return 1;
+#endif
+
+ return 1;
}
int