Patch looks good, so ACK + merged.

Regards,
  Honza

Xia Li napsal(a):
> When using corosync with clear_node_high_bit setting to yes,
> the highest bit is cleared.  When all the cluster nodes are in
> one subnet, we probably configure the IP addresses as follows:
> 
> node1: 147.2.207.64
> node2: 147.2.207.192
> 
> If the byte order of the nodeid is little endian, wiping off the
> highest bit will make the two nodes have the same nodeid!
> 
> This patch fixes this by converting the nodeid to network order.
> 
> Signed-off-by: Xia Li <[email protected]>
> ---
>  exec/totemip.c |    2 +-
>  test/testcpg.c |    2 +-
>  2 files changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/exec/totemip.c b/exec/totemip.c
> index 77bcad5..7ba746e 100644
> --- a/exec/totemip.c
> +++ b/exec/totemip.c
> @@ -466,7 +466,7 @@ int totemip_iface_check(struct totem_ip_address *bindnet,
>                       if (boundto->family == AF_INET && boundto->nodeid == 0) 
> {
>                               unsigned int nodeid = 0;
>                               memcpy (&nodeid, boundto->addr, sizeof (int));
> -#if __BYTE_ORDER == __BIG_ENDIAN
> +#if __BYTE_ORDER == __LITTLE_ENDIAN
>                                  nodeid = swab32 (nodeid);
>  #endif
>                               if (mask_high_bit) {
> diff --git a/test/testcpg.c b/test/testcpg.c
> index 67c2d7c..911140c 100644
> --- a/test/testcpg.c
> +++ b/test/testcpg.c
> @@ -84,7 +84,7 @@ static char * node_pid_format(unsigned int nodeid, unsigned 
> int pid) {
>       static char buffer[100];
>       if (show_ip) {
>               struct in_addr saddr;
> -#if __BYTE_ORDER == __BIG_ENDIAN
> +#if __BYTE_ORDER == __LITTLE_ENDIAN
>               saddr.s_addr = swab32(nodeid);
>  #else
>               saddr.s_addr = nodeid;

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

Reply via email to