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