VIRT-PHY: Fixed error causing send msgs to be received on same sock.

This could be disabled setting socket option IP_MULTICAST_ALL = 0.

Change-Id: Ia2838c4cd39bfac04c014b4c8512466b301d8875
This commit is contained in:
Sebastian Stumpf 2017-02-27 15:13:26 +01:00 committed by Harald Welte
parent 360de6bead
commit 241fe9c3e2
1 changed files with 9 additions and 1 deletions

View File

@ -52,7 +52,7 @@ struct mcast_client_sock *mcast_client_sock_setup(
struct mcast_client_sock);
struct sockaddr_in *rx_sock_conf = talloc_zero(NULL,
struct sockaddr_in);
int rc, reuseaddr = 1, loopback = 1;
int rc, reuseaddr = 1, loopback = 1, all = 0;
client_sock->osmo_fd = talloc_zero(ctx, struct osmo_fd);
client_sock->mcast_group = talloc_zero(ctx, struct ip_mreq);
@ -107,6 +107,14 @@ struct mcast_client_sock *mcast_client_sock_setup(
return NULL;
}
// this option will set the delivery option so that only packages are received
// from sockets we are bound to via IP_ADD_MEMBERSHIP
if (setsockopt(client_sock->osmo_fd->fd, IPPROTO_IP,
IP_MULTICAST_ALL, &all, sizeof(all)) < 0) {
perror("Failed to modify delivery policy to explicitly joined.\n");
return NULL;
}
// configure and register the osmocom filedescriptor
client_sock->osmo_fd->cb = fd_rx_cb;
client_sock->osmo_fd->when = BSC_FD_READ;