From a3062085827db3115961eacd9d945ac202728174 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Wed, 13 Jan 2010 14:53:33 +0100 Subject: Comment update. --- proto/ospf/iface.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/proto/ospf/iface.c b/proto/ospf/iface.c index 25a9822..b90ab9f 100644 --- a/proto/ospf/iface.c +++ b/proto/ospf/iface.c @@ -69,11 +69,14 @@ ospf_open_socket(struct ospf_iface *ifa, int mc) ipsk->dport = OSPF_PROTO; #ifdef OSPFv2 - /* FIXME - why there is IPA_NONE on multicast sockets ? */ - if (mc) - ipsk->saddr = IPA_NONE; - else - ipsk->saddr = ifa->iface->addr->ip; + /* + * In Linux IPv4, binding a raw socket to an IP address of an iface causes + * that the socket does not receive multicast packets, as they have + * different (multicast) destination IP address. + * + * We want such filter in the vlink (non-mc) socket. + */ + ipsk->saddr = mc ? IPA_NONE : ifa->iface->addr->ip; #else /* OSPFv3 */ ipsk->saddr = ifa->lladdr; #endif -- cgit v1.2.3