Hi, We found a problem with libnetfilter_conntrack on PPC64 computer (64-bit, big endian). The last public version (0.81) has three bogus functions : * nfct_get_attr_u8 * nfct_get_attr_u16 * nfct_get_attr_u32 We also saw that the bug is already fixed in src/conntrack/api.c file of subversion. See attached patch that fix the bug. The patch is quite easy to understand. Can someone release a new version of libnetfilter_conntrack just with the patch? I already asked Pablo but he's very busy. Victor Stinner http://www.inl.fr/
--- libnetfilter_conntrack-0.0.81/src/conntrack/api.c 2007-06-25 20:40:03.000000000 +0200 +++ libnetfilter_conntrack-trunk/src/conntrack/api.c 2007-09-02 12:02:28.000000000 +0200 @@ -304,7 +304,7 @@ u_int8_t nfct_get_attr_u8(const struct nf_conntrack *ct, const enum nf_conntrack_attr type) { - const int *ret = nfct_get_attr(ct, type); + const u_int8_t *ret = nfct_get_attr(ct, type); return ret == NULL ? 0 : *ret; } @@ -320,7 +320,7 @@ u_int16_t nfct_get_attr_u16(const struct nf_conntrack *ct, const enum nf_conntrack_attr type) { - const int *ret = nfct_get_attr(ct, type); + const u_int16_t *ret = nfct_get_attr(ct, type); return ret == NULL ? 0 : *ret; } @@ -336,7 +336,7 @@ u_int32_t nfct_get_attr_u32(const struct nf_conntrack *ct, const enum nf_conntrack_attr type) { - const int *ret = nfct_get_attr(ct, type); + const u_int32_t *ret = nfct_get_attr(ct, type); return ret == NULL ? 0 : *ret; }