[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <47BAEB6C.1030609@trash.net>
Date: Tue, 19 Feb 2008 15:45:00 +0100
From: Patrick McHardy <kaber@...sh.net>
To: David Woodhouse <dwmw2@...radead.org>
CC: netdev@...r.kernel.org, Jan Engelhardt <jengelh@...putergmbh.de>,
"David S. Miller" <davem@...emloft.net>, varekova@...hat.com
Subject: Re: [NETFILTER]: Introduce nf_inet_address
David Woodhouse wrote:
> On Tue, 2008-02-19 at 15:01 +0100, Patrick McHardy wrote:
>> David Woodhouse wrote:
>>>> +union nf_inet_addr {
>>>> + u_int32_t all[4];
>>>> + __be32 ip;
>>>> + __be32 ip6[4];
>>>> +};
>>>> +
>>>> #ifdef __KERNEL__
>>>> #ifdef CONFIG_NETFILTER
>>> This breaks the busybox build:
>>>
>>> CC ipsvd/tcpudp.o
>>> In file included from /usr/include/linux/netfilter_ipv4.h:8,
>>> from ipsvd/tcpudp.c:33:
>>> /usr/include/linux/netfilter.h:40: error: expected specifier-qualifier-list before 'u_int32_t'
>>>
>>> What is this 'u_int32_t' nonsense anyway?
>>>
>>> If a user-visible header is likely to be included by libc directly from
>>> a 'standard' header, it may not require <stdint.h>. Therefore it should
>>> use the system-specific types such as '__u32'.
>> Right, I queued this patch to fix it.
>
> That does the trick -- but are we using u_int32_t elsewhere in
> user-visible headers? Does it work there? How?
Its used in nearly every ip_tables header file. Those are most likely
not included by glibc and iptables includes sys/types.h. Besides
iptables I'm only aware of a perl module that uses these files,
which is probably also including sys/types.h.
>>> A later commit adds struct in_addr and struct in6_addr to this union
>>> too, which breaks busybox even harder.
>> Thats odd, the iptables headers have always used struct in_addr and
>> struct in6_addr in struct ipt_ip/struct ip6t_ip6, which are also
>> used by userspace. What is "ipsvd/tcpudp.c"? I couldn't find it in
>> the Debian busybox source.
>
> It's in busybox 1.9.1. Just including <netinet/in.h> seems to be
> sufficient to make it happy again. I wonder if netfilter.h should
> include that for itself?
That would break iptables compilation, which already includes
linux/in.h in some files. I guess the best fix for now is to
include netinet/in.h in busybox and long-term clean this up
properly.
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Powered by blists - more mailing lists