1
0
mirror of http://git.haproxy.org/git/haproxy.git/ synced 2025-03-24 20:07:33 +00:00

BUILD: lua: build failed on FreeBSD.

s6_addr* fields are not available in the userland on
BSD systems in general.

bug reported by David Carlier

needs backport to 1.7.x
This commit is contained in:
Thierry FOURNIER 2016-12-23 17:03:25 +01:00 committed by Willy Tarreau
parent f27cddcf7d
commit de6925eccf

View File

@ -1016,14 +1016,16 @@ int hlua_match_addr(lua_State *L)
return 1; return 1;
} }
} else { } else {
if (((addr1->addr.v6.ip.s6_addr32[0] & addr2->addr.v6.mask.s6_addr32[0]) == int i;
(addr2->addr.v6.ip.s6_addr32[0] & addr1->addr.v6.mask.s6_addr32[0])) &&
((addr1->addr.v6.ip.s6_addr32[1] & addr2->addr.v6.mask.s6_addr32[1]) == for (i = 0; i < 16; i += 4) {
(addr2->addr.v6.ip.s6_addr32[1] & addr1->addr.v6.mask.s6_addr32[1])) && if ((*(uint32_t *)&addr1->addr.v6.ip.s6_addr[i] &
((addr1->addr.v6.ip.s6_addr32[2] & addr2->addr.v6.mask.s6_addr32[2]) == *(uint32_t *)&addr2->addr.v6.mask.s6_addr[i]) !=
(addr2->addr.v6.ip.s6_addr32[2] & addr1->addr.v6.mask.s6_addr32[2])) && (*(uint32_t *)&addr2->addr.v6.ip.s6_addr[i] &
((addr1->addr.v6.ip.s6_addr32[3] & addr2->addr.v6.mask.s6_addr32[3]) == *(uint32_t *)&addr1->addr.v6.mask.s6_addr[i]))
(addr2->addr.v6.ip.s6_addr32[3] & addr1->addr.v6.mask.s6_addr32[3]))) { break;
}
if (i == 16) {
lua_pushboolean(L, 1); lua_pushboolean(L, 1);
return 1; return 1;
} }