committed as 2409.

On Tue, Sep 8, 2009 at 6:46 PM, Christine Caulfield <[email protected]> wrote:
> On 07/09/09 21:34, Angus Salkeld wrote:
>>
>> Hi
>>
>> This is a resend of : http://marc.info/?l=openais&m=124821155618466&w=4
>>
>> Currently totemip_copy (boundto,&ipaddr) is called even when the
>> required mask is not found.
>>
>> This patch changes the behavior to only copy the ipaddr when the mask is
>> found.
>>
>> The current behavior makes debugging an incorrect config really confusing.
>
> ACK on provision you fix the comment below ;-)
>
> Chrissie
>
>
>>
>> --- exec/totemip.c      (revision 2405)
>> +++ exec/totemip.c      (working copy)
>> @@ -474,6 +474,7 @@
>>                        int mask_high_bit)
>>  {
>>        int fd;
>> +       int res = -1;
>>        struct {
>>                  struct nlmsghdr nlh;
>>                  struct rtgenmsg g;
>> @@ -591,17 +592,31 @@
>>                                        /* SIOCGIFFLAGS needs an interface
>> name */
>>                                        status = ioctl(ioctl_fd,
>> SIOCGIFNAME,&ifr);
>>                                        status = ioctl(ioctl_fd,
>> SIOCGIFFLAGS,&ifr);
>> +                                       close(ioctl_fd);
>>                                        if (status) {
>> -                                               close(ioctl_fd);
>> -                                               close(fd);
>> -                                               return -1;
>> +                                               res = -1;
>> +                                               goto finished;
>>                                        }
>>
>>                                        if (ifr.ifr_flags&  IFF_UP)
>>                                                *interface_up = 1;
>>
>>                                        *interface_num = ifa->ifa_index;
>> -                                       close(ioctl_fd);
>> +                                       /* Mask 32nd bit off to workaround
>> bugs in other peoples code
>> +                                        * (if configuration requests it).
>> */
>
> The comment should be in this format :
>
> /*
>  * Mask 32nd bit off to workaround bugs in other peoples' code
>  * (if configuration requests it).
>  */
>
>
>
>> +                                       if (ipaddr.family == AF_INET&&
>>  ipaddr.nodeid == 0) {
>> +                                               unsigned int nodeid = 0;
>> +                                               memcpy (&nodeid,
>> ipaddr.addr, sizeof (int));
>> +#if __BYTE_ORDER == __BIG_ENDIAN
>> +                                                nodeid = swab32 (nodeid);
>> +#endif
>> +                                               if (mask_high_bit) {
>> +                                                       nodeid&=
>> 0x7FFFFFFF;
>> +                                               }
>> +                                               ipaddr.nodeid = nodeid;
>> +                                       }
>> +                                       totemip_copy (boundto,&ipaddr);
>> +                                       res = 0;
>>                                        goto finished;
>>                                }
>>                        }
>> @@ -609,24 +624,9 @@
>>                        h = NLMSG_NEXT(h, status);
>>                }
>>        }
>> +       res = -1; /* address not found */
>>  finished:
>> -       /*
>> -        * Mask 32nd bit off to workaround bugs in other poeples code
>> -        * if configuration requests it.
>> -        */
>> -       if (ipaddr.family == AF_INET&&  ipaddr.nodeid == 0) {
>> -                unsigned int nodeid = 0;
>> -                memcpy (&nodeid, ipaddr.addr, sizeof (int));
>> -#if __BYTE_ORDER == __BIG_ENDIAN
>> -               nodeid = swab32 (nodeid);
>> -#endif
>> -               if (mask_high_bit) {
>> -                        nodeid&= 0x7FFFFFFF;
>> -               }
>> -                ipaddr.nodeid = nodeid;
>> -        }
>> -       totemip_copy (boundto,&ipaddr);
>>        close(fd);
>> -       return 0;
>> +       return res;
>>  }
>>  #endif /* COROSYNC_LINUX */
>> _______________________________________________
>> Openais mailing list
>> [email protected]
>> https://lists.linux-foundation.org/mailman/listinfo/openais
>
>
_______________________________________________
Openais mailing list
[email protected]
https://lists.linux-foundation.org/mailman/listinfo/openais

Reply via email to