summaryrefslogtreecommitdiffstats
path: root/zebra/kernel_socket.c
diff options
context:
space:
mode:
authorDavid Ward <david.ward@ll.mit.edu>2009-12-03 19:43:11 +0100
committerDenis Ovsienko <infrastation@yandex.ru>2009-12-03 19:46:00 +0100
commite6f148e6e06a37a65afb322eca6a3298b8ade8d2 (patch)
tree5d3869cd936e5f9af5ee281518316037790513ef /zebra/kernel_socket.c
parentisisd: fix --enable-isis-topology for 64-bit Linux (diff)
downloadfrr-e6f148e6e06a37a65afb322eca6a3298b8ade8d2.tar.xz
frr-e6f148e6e06a37a65afb322eca6a3298b8ade8d2.zip
zebra: handle RTF_CLONING removal from FreeBSD 8.0
The RTF_CLONING flag has been removed in FreeBSD 8.0 with arp-v2 (see http://svn.freebsd.org/viewvc/base/stable/8/UPDATING?view=markup), since it no longer has any meaning. This patch checks if RTF_CLONING exists before using it.
Diffstat (limited to 'zebra/kernel_socket.c')
-rw-r--r--zebra/kernel_socket.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/zebra/kernel_socket.c b/zebra/kernel_socket.c
index e8eaf28fb..feeaf5d03 100644
--- a/zebra/kernel_socket.c
+++ b/zebra/kernel_socket.c
@@ -173,7 +173,9 @@ static const struct message rtm_flag_str[] =
#ifdef RTF_MASK
{RTF_MASK, "MASK"},
#endif /* RTF_MASK */
+#ifdef RTF_CLONING
{RTF_CLONING, "CLONING"},
+#endif /* RTF_CLONING */
{RTF_XRESOLVE, "XRESOLVE"},
{RTF_LLINFO, "LLINFO"},
{RTF_STATIC, "STATIC"},
@@ -999,9 +1001,14 @@ rtm_write (int message,
if (gate && message == RTM_ADD)
msg.rtm.rtm_flags |= RTF_GATEWAY;
+ /* When RTF_CLONING is unavailable on BSD, should we set some
+ * other flag instead?
+ */
+#ifdef RTF_CLONING
if (! gate && message == RTM_ADD && ifp &&
(ifp->flags & IFF_POINTOPOINT) == 0)
msg.rtm.rtm_flags |= RTF_CLONING;
+#endif /* RTF_CLONING */
/* If no protocol specific gateway is specified, use link
address for gateway. */