From: David Lamparter Date: Thu, 11 Aug 2016 15:51:41 +0000 (+0200) Subject: pimd: don't break with missing SO_BINDTODEVICE X-Git-Tag: frr-2.0-rc1~390 X-Git-Url: https://git.proxmox.com/?a=commitdiff_plain;h=6bcd6029f1143b62f005c3508df3b3021787f898;p=mirror_frr.git pimd: don't break with missing SO_BINDTODEVICE This effectively a partial revert of commit 61ea395... "pimd: Bind pim sockets to interface they are associated with" Note this isn't really a proper fix, it just clears the build breakage on BSD without improving the usage of multiple sockets. Reported-by: Martin Winter Signed-off-by: David Lamparter --- diff --git a/pimd/pim_sock.c b/pimd/pim_sock.c index a2e166f79..e04cd4157 100644 --- a/pimd/pim_sock.c +++ b/pimd/pim_sock.c @@ -79,6 +79,7 @@ int pim_socket_mcast(int protocol, struct in_addr ifaddr, int ifindex, int loop) return PIM_SOCK_ERR_SOCKET; } +#ifdef SO_BINDTODEVICE if (protocol == IPPROTO_PIM) { int ret; @@ -104,7 +105,10 @@ int pim_socket_mcast(int protocol, struct in_addr ifaddr, int ifindex, int loop) return PIM_SOCK_ERR_BIND; } } - +#else + /* XXX: use IP_PKTINFO / IP_RECVIF to emulate behaviour? Or change to + * only use 1 socket for all interfaces? */ +#endif /* Needed to obtain destination address from recvmsg() */ {