raw socket programming SOLVED
David A. Gobeille
dgobeille at earthlink.net
Mon Jul 7 08:09:01 PDT 2003
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
More information about the freebsd-hackers
mailing list