For instance, the IPs are:
eth0: 10.150.10.81/8
eth1: 10.150.10.91/24 
The bindnetaddr in corosync is: 10.150.10.0 and the addr of eth1 is
selected in UDPU mode. Then the bindto address probably mistakenly choose
the addr of eth0.

Signed-off-by: Lidong Zhong <[email protected]>
---
 exec/totemip.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/exec/totemip.c b/exec/totemip.c
index ab175a8..c1fa800 100644
--- a/exec/totemip.c
+++ b/exec/totemip.c
@@ -626,7 +626,7 @@ int totemip_iface_check(struct totem_ip_address *bindnet,
                                        memcpy(&network, 
RTA_DATA(tb[IFA_LOCAL]), sizeof(uint32_t));
                                        memcpy(&addr, bindnet->addr, 
sizeof(uint32_t));
 
-                                       if ((addr & netmask) == (network & 
netmask)) {
+                                       if (addr == (network & netmask)) {
                                                memcpy(ipaddr.addr, 
RTA_DATA(tb[IFA_ADDRESS]), TOTEMIP_ADDRLEN);
                                                found_if = 1;
                                        }
-- 
1.8.1.4

_______________________________________________
discuss mailing list
[email protected]
http://lists.corosync.org/mailman/listinfo/discuss

Reply via email to