Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 07 Jul 2003 10:09:05 -0500
From:      "David A. Gobeille" <dgobeille@earthlink.net>
To:        Alin-Adrian Anton <aanton@reversedhell.net>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: raw socket programming SOLVED
Message-ID:  <3F098D11.2070802@earthlink.net>
In-Reply-To: <3F0790EF.10407@reversedhell.net>
References:  <0193271C683D5844A478A359271B8F66147AD8@DC1.dynatec.com> <3F07860E.9060702@reversedhell.net> <20030707162900.B49607@beagle.fokus.fraunhofer.de> <3F078DC9.3080708@reversedhell.net> <20030707164832.L49607@beagle.fokus.fraunhofer.de> <3F0790EF.10407@reversedhell.net>

next in thread | previous in thread | raw e-mail | index | archive | help
Alin-Adrian Anton wrote:

> Harti Brandt wrote:
> 
>> On Sun, 6 Jul 2003, Alin-Adrian Anton wrote:
>>
>> AA>Harti Brandt wrote:
>> AA>
>> AA>>On Sun, 6 Jul 2003, Alin-Adrian Anton wrote:
>> AA>>
>> AA>>AA>>>In file included from raw.c:7:
>> AA>>AA>>>/usr/include/netinet/ip.h:156: syntax error before `n_long'
>> AA>>AA>>>/usr/include/netinet/ip.h:159: syntax error before `n_long'
>> AA>>
>> AA>>You may want to include <netinet/in_systm.h>
>> AA>>
>> AA>>harti
>> AA>>
>> AA>>
>> AA>
>> AA>Yes, indeed this solves the n_long problem. This is how my include 
>> list
>> AA>looks now:
>> AA>
>> AA>#include <sys/types.h>
>> AA>#include <sys/socket.h>
>> AA>#include <stdio.h>
>> AA>#include <string.h>
>> AA>#include <errno.h>
>> AA>#include <netinet/in_systm.h>
>> AA>#include <netinet/ip.h>
>> AA>#include <netinet/in.h>
>> AA>#include <unistd.h>
>> AA>#include <netinet/tcp.h>
>> AA>
>> AA>And this is what I get when trying to compile:
>> AA>
>> AA>beast# cc -o raw raw.c
>> AA>In file included from raw.c:7:
>> AA>/usr/include/netinet/ip.h:73: field `ip_src' has incomplete type
>> AA>/usr/include/netinet/ip.h:73: field `ip_dst' has incomplete type
>> AA>/usr/include/netinet/ip.h:158: field `ipt_addr' has incomplete type
>> AA>beast#
>>
>> Try to swap ip.h and in.h (in.h declares struct in_addr).
>>
>> harti
>>  
>>
> Yes, it works now, with these includes:
> -------------------------------
> #include <sys/types.h>
> #include <sys/socket.h>
> #include <stdio.h>
> #include <string.h>
> #include <errno.h>
> 
> #include <netinet/in_systm.h>
> #include <netinet/in.h>
> #include <netinet/ip.h>
> 
> #include <unistd.h>
> #include <netinet/tcp.h>
> -------------------------------
> 
> Thank you very much everybody!
> 
> Best Regards,
> Alin.

Shouldn't the #included files themselves #include headers they are 
dependant on?  With the use of #ifndef and #define in the headers to 
keep them from being #included more than once?

It seems silly(more work) for the programmer to have to arrange 
everything in a specific order.

-- 
Dave




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?3F098D11.2070802>