On 18/06/15 03:20, Lidong Zhong wrote: > Hi Christine, > > Any news about this patch? > Hi Lidong, I'm afraid I'm going to have to NAK it. Although it technically matches the man page, it breaks existing behaviour (the ability to bind to a host IP address) and that behaviour is also valid in corosync 2. If you can come up with a patch that allows that behaviour AND fixes this problem then I'll he happy to review it. Sorry for delay in responding, I was away for a while. Chrissie > Regards, > Lidong > >>>> On 5/15/2015 at 09:52 AM, in >> message > <5555C1E0020000E100024737@xxxxxxxxxxxxxxxxxxxxxxx>, "Lidong >> Zhong" > <lzhong@xxxxxxxx> wrote: > On 5/14/2015 at 08:23 PM, in message >> <555493A5.6070004@xxxxxxxxxx>, Christine >> Caulfield <ccaulfie@xxxxxxxxxx> wrote: >>> On 14/05/15 06:36, Lidong Zhong wrote: >>>> 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. >>>> >>> >>> Hiya, >>> >>> Thanks for the patch but I'm not convinced it's the right thing to do >>> for all situations. If the bindnet_addr is set to an actual IP address >>> and not a subnet mask then it will fail I think. What does your >>> corosync.conf look like? >>> >> Hi Chrissie, >> >> Thanks for your reply. The full corosync.conf is attached below. >> As the man page says, the bindnetaddr always is the local interface ip >> with netmask. It should be a full ip address only in IPv6 case. And I think >> there >> is no problem for the current code to handle IPv6 address. >> >> Regards, >> Lidong >> >>> Chrissie >>> >>>> Signed-off-by: Lidong Zhong <lzhong@xxxxxxxx> >>>> --- >>>> 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; >>>> } >>>> >>> >>> _______________________________________________ >>> discuss mailing list >>> discuss@xxxxxxxxxxxx >>> http://lists.corosync.org/mailman/listinfo/discuss >>> >>> >> >> >> > > _______________________________________________ discuss mailing list discuss@xxxxxxxxxxxx http://lists.corosync.org/mailman/listinfo/discuss