mirror of
https://github.com/samba-team/samba.git
synced 2025-03-01 04:58:35 +03:00
FreeBSD does not define s6_addr32, only s6_addr
Signed-off-by: Michael Adam <obnox@samba.org> (This used to be ctdb commit d657af4fb68ce3f7c462856f2934f6bf169e120b)
This commit is contained in:
parent
cb44ebbc95
commit
5e3b13a32a
@ -522,7 +522,7 @@ void ctdb_canonicalize_ip(const ctdb_sock_addr *ip, ctdb_sock_addr *cip)
|
|||||||
#endif
|
#endif
|
||||||
cip->ip.sin_family = AF_INET;
|
cip->ip.sin_family = AF_INET;
|
||||||
cip->ip.sin_port = ip->ip6.sin6_port;
|
cip->ip.sin_port = ip->ip6.sin6_port;
|
||||||
memcpy(&cip->ip.sin_addr, &ip->ip6.sin6_addr.s6_addr32[3], 4);
|
memcpy(&cip->ip.sin_addr, &ip->ip6.sin6_addr.s6_addr[12], 4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1222,12 +1222,14 @@ static uint32_t *ip_key(ctdb_sock_addr *ip)
|
|||||||
case AF_INET:
|
case AF_INET:
|
||||||
key[3] = htonl(ip->ip.sin_addr.s_addr);
|
key[3] = htonl(ip->ip.sin_addr.s_addr);
|
||||||
break;
|
break;
|
||||||
case AF_INET6:
|
case AF_INET6: {
|
||||||
key[0] = htonl(ip->ip6.sin6_addr.s6_addr32[0]);
|
uint32_t *s6_a32 = (uint32_t *)&(ip->ip6.sin6_addr.s6_addr);
|
||||||
key[1] = htonl(ip->ip6.sin6_addr.s6_addr32[1]);
|
key[0] = htonl(s6_a32[0]);
|
||||||
key[2] = htonl(ip->ip6.sin6_addr.s6_addr32[2]);
|
key[1] = htonl(s6_a32[1]);
|
||||||
key[3] = htonl(ip->ip6.sin6_addr.s6_addr32[3]);
|
key[2] = htonl(s6_a32[2]);
|
||||||
|
key[3] = htonl(s6_a32[3]);
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
DEBUG(DEBUG_ERR, (__location__ " ERROR, unknown family passed :%u\n", ip->sa.sa_family));
|
DEBUG(DEBUG_ERR, (__location__ " ERROR, unknown family passed :%u\n", ip->sa.sa_family));
|
||||||
return key;
|
return key;
|
||||||
@ -2800,18 +2802,23 @@ static uint32_t *killtcp_key(ctdb_sock_addr *src, ctdb_sock_addr *dst)
|
|||||||
key[2] = dst->ip.sin_port;
|
key[2] = dst->ip.sin_port;
|
||||||
key[3] = src->ip.sin_port;
|
key[3] = src->ip.sin_port;
|
||||||
break;
|
break;
|
||||||
case AF_INET6:
|
case AF_INET6: {
|
||||||
key[0] = dst->ip6.sin6_addr.s6_addr32[3];
|
uint32_t *dst6_addr32 =
|
||||||
key[1] = src->ip6.sin6_addr.s6_addr32[3];
|
(uint32_t *)&(dst->ip6.sin6_addr.s6_addr);
|
||||||
key[2] = dst->ip6.sin6_addr.s6_addr32[2];
|
uint32_t *src6_addr32 =
|
||||||
key[3] = src->ip6.sin6_addr.s6_addr32[2];
|
(uint32_t *)&(src->ip6.sin6_addr.s6_addr);
|
||||||
key[4] = dst->ip6.sin6_addr.s6_addr32[1];
|
key[0] = dst6_addr32[3];
|
||||||
key[5] = src->ip6.sin6_addr.s6_addr32[1];
|
key[1] = src6_addr32[3];
|
||||||
key[6] = dst->ip6.sin6_addr.s6_addr32[0];
|
key[2] = dst6_addr32[2];
|
||||||
key[7] = src->ip6.sin6_addr.s6_addr32[0];
|
key[3] = src6_addr32[2];
|
||||||
|
key[4] = dst6_addr32[1];
|
||||||
|
key[5] = src6_addr32[1];
|
||||||
|
key[6] = dst6_addr32[0];
|
||||||
|
key[7] = src6_addr32[0];
|
||||||
key[8] = dst->ip6.sin6_port;
|
key[8] = dst->ip6.sin6_port;
|
||||||
key[9] = src->ip6.sin6_port;
|
key[9] = src->ip6.sin6_port;
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
DEBUG(DEBUG_ERR, (__location__ " ERROR, unknown family passed :%u\n", src->sa.sa_family));
|
DEBUG(DEBUG_ERR, (__location__ " ERROR, unknown family passed :%u\n", src->sa.sa_family));
|
||||||
return key;
|
return key;
|
||||||
|
@ -1601,12 +1601,14 @@ static uint32_t *ip_key(ctdb_sock_addr *ip)
|
|||||||
case AF_INET:
|
case AF_INET:
|
||||||
key[0] = ip->ip.sin_addr.s_addr;
|
key[0] = ip->ip.sin_addr.s_addr;
|
||||||
break;
|
break;
|
||||||
case AF_INET6:
|
case AF_INET6: {
|
||||||
key[0] = ip->ip6.sin6_addr.s6_addr32[3];
|
uint32_t *s6_a32 = (uint32_t *)&(ip->ip6.sin6_addr.s6_addr);
|
||||||
key[1] = ip->ip6.sin6_addr.s6_addr32[2];
|
key[0] = s6_a32[3];
|
||||||
key[2] = ip->ip6.sin6_addr.s6_addr32[1];
|
key[1] = s6_a32[2];
|
||||||
key[3] = ip->ip6.sin6_addr.s6_addr32[0];
|
key[2] = s6_a32[1];
|
||||||
|
key[3] = s6_a32[0];
|
||||||
break;
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
DEBUG(DEBUG_ERR, (__location__ " ERROR, unknown family passed :%u\n", ip->sa.sa_family));
|
DEBUG(DEBUG_ERR, (__location__ " ERROR, unknown family passed :%u\n", ip->sa.sa_family));
|
||||||
return key;
|
return key;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user