[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-ha-dev
Subject: [Linux-ha-dev] [patch 09/10] Use the 32bit wide field of in6_addr
From: Simon Horman <horms () verge ! net ! au>
Date: 2007-04-13 7:02:39
Message-ID: 20070413070508.830950500 () tabatha ! lab ! ultramonkey ! org
[Download RAW message or body]
Currently the code relies exlusively on using the 8bit wide
feild of in6_addr. There doesn't really seem to be a good
reason not to use the 32bit one, though I guess there is little
advantage either way.
Index: heartbeat-ipv6addr/resources/OCF/IPv6addr.c
===================================================================
--- heartbeat-ipv6addr.orig/resources/OCF/IPv6addr.c 2007-04-13 15:55:00.000000000 +0900
+++ heartbeat-ipv6addr/resources/OCF/IPv6addr.c 2007-04-13 15:55:11.000000000 +0900
@@ -475,17 +475,17 @@
/* Make the mask based on prefix length */
memset(mask.s6_addr, 0xff, 16);
if (use_mask && plen < 128) {
- n = plen / 8;
- memset(mask.s6_addr + n + 1, 0, 15 - n);
- s = 8 - plen % 8;
- mask.s6_addr[n] = 0xff << s;
+ n = plen / 32;
+ memset(mask.s6_addr32 + n + 1, 0, (3 - n) * 4);
+ s = 32 - plen % 32;
+ mask.s6_addr32[n] = 0xffffffff << s;
}
/* compare addr and addr_target */
same = TRUE;
- for (i = 0; i < 16; i++) {
- if ((addr.s6_addr[i]&mask.s6_addr[i]) !=
- (addr_target->s6_addr[i]&mask.s6_addr[i])) {
+ for (i = 0; i < 4; i++) {
+ if ((addr.s6_addr32[i]&mask.s6_addr32[i]) !=
+ (addr_target->s6_addr32[i]&mask.s6_addr32[i])) {
same = FALSE;
break;
}
--
--
Horms
H: http://www.vergenet.net/~horms/
W: http://www.valinux.co.jp/en/
_______________________________________________________
Linux-HA-Dev: Linux-HA-Dev@lists.linux-ha.org
http://lists.linux-ha.org/mailman/listinfo/linux-ha-dev
Home Page: http://linux-ha.org/
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic