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 <mwinter@opensourcerouting.org>
Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
David Lamparter 2016-08-11 17:51:41 +02:00
parent 120c658793
commit 6bcd6029f1

View File

@ -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() */
{