svn commit: trunk/busybox/networking/libiproute

Denys Vlasenko vda.linux at googlemail.com
Thu Dec 4 11:54:08 UTC 2008


On Wednesday 03 December 2008 22:12, Bernhard Reutner-Fischer wrote:
> On Wed, Dec 03, 2008 at 12:16:12PM -0800, vda at busybox.net wrote:
> >Author: vda
> >Date: 2008-12-03 12:16:11 -0800 (Wed, 03 Dec 2008)
> >New Revision: 24253
> >
> >Log:
> >iptunnel: fix problems with including linux/ip_tunnel.h
> > on some systems
> 
> On which systems? How, if i may ask?

I don't know. I tried to extract this information from the reporter,
not much luck. I got only a basic understanding of the problem:

#include <netinet/ip.h>
#include <net/if.h>
#include <net/if_arp.h>
#include <asm/types.h>
#ifndef __constant_htons
#define __constant_htons htons
#endif
#include <linux/if_tunnel.h>

In newer kernels linux/if_tunnel.h started to #include linux/ip.h.
Naturally, linux/ip.h basically defines the same things as
netinet/ip.h does, but it does not check whether netinet/ip.h
was already included! (it of course guards about itself being
already included, but this does not help).

So it ends up colliding with typedefs and structs from netinet/ip.h.

I suggested replacing netinet/ip.h with linux/ip.h, but reporter
says it still fails. Looks like we have more collisions with other
headers.

Instead of playing whack-a-mole, I decided to just copy those
parts of linux/if_tunnel.h that we need.
--
vda



More information about the busybox mailing list