Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 06 Jul 2003 05:14:38 +0300
From:      Alin-Adrian Anton <aanton@reversedhell.net>
To:        Tom Servo <xtomservox@hotpop.com>
Cc:        freebsd-hackers@freebsd.org
Subject:   Re: raw socket programming
Message-ID:  <3F07860E.9060702@reversedhell.net>
In-Reply-To: <0193271C683D5844A478A359271B8F66147AD8@DC1.dynatec.com>
References:  <0193271C683D5844A478A359271B8F66147AD8@DC1.dynatec.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Tom Servo wrote:

>Off the top of my head this appears to be an include sequencing/circular
>include problem.  Check the type that 'n_long' is being defined as and make
>sure that the proper includes that define the type are defined before the
>variable is defined and make sure that it is not getting run over.  Is that
>the only files that you are including?
>-ts
>
>  
>
>>Hey folks,
>>
>>I am playing with raw sockets on a FreeBSD 4.8 STABLE. This is the 
>>include section from my file:
>>
>>#include <sys/types.h>
>>#include <sys/socket.h>
>>#include <stdio.h>
>>#include <string.h>
>>#include <errno.h>
>>#include <netinet/in.h>
>>#include <netinet/ip.h>
>>#include <unistd.h>
>>#include <netinet/tcp.h>
>>
>>When i try to compile the code, this is what I get:
>>%cc -o raw raw.c
>>In file included from raw.c:7:
>>/usr/include/netinet/ip.h:156: syntax error before `n_long'
>>/usr/include/netinet/ip.h:159: syntax error before `n_long'
>>%
>>
>>Errors like that were many more, but I rearranged the included files in 
>>this particular order, and the huge number of errors was reduced to what 
>>I pasted. Before, there were errors in tcp.h and etc.
>>
>>I would really appreciate an advice of what else to include/not to 
>>include in order to get things right.
>>
>>Thanks in advance!
>>
>>Yours Sincerely,
>>Alin.
>>    
>>
>
>
>
>
>
>  
>
Well, I don't wanna be idiot, perhaps I am too tired, but n_long appears 
in ip.h defined as :

beast# grep ipt_time /usr/include/netinet/ip.h
        union ipt_timestamp {
                n_long  ipt_time[1];
                        n_long ipt_time;
        } ipt_timestamp;
beast# grep ipt_time /usr/include/netinet/*
/usr/include/netinet/ip.h:      union ipt_timestamp {
/usr/include/netinet/ip.h:              n_long  ipt_time[1];
/usr/include/netinet/ip.h:                      n_long ipt_time;
/usr/include/netinet/ip.h:      } ipt_timestamp;
beast#

And, I simply don't find where ipt_time is defined ! I suppose it is 
structure, perhaps it is of type ipt_timestamp, *g*.
And yes, those are all the files I include, nothing more, nothing less.

Alin.




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